Skip to content

Releases: Nice3point/RevitTemplates

6.0.0

31 Dec 11:05

Choose a tag to compare

Global changes

  • New Nice3point.Revit.Sdk for project configuration and development.
  • New templates: Revit Benchmark and Revit Test (TUnit).
  • Replaced Nuke with ModularPipelines build system. Nuke is no longer maintained: https://github.com/nuke-build/nuke/discussions/1564#discussioncomment-15001502
  • Integrated GitVersion.Tool for automatic release versioning based on Git history.
  • Integrated automatic changelog generation via GitHub API.

Solution template

  • Migrated to ModularPipelines.
  • Support for WIX4 and .NET Core installer project.
  • Updated GitHub Actions and Azure DevOps pipelines to support new versioning and publishing logic.
  • Removed Nuke related files and configurations.
  • Support for .NET 10.

Note

The solution .slnx format is broken in Rider and VS and temporary disabled until it will be fixed.
Use .sln instead and convert to .slnx using or .NET CLI after creating the project.

Note

The Rider Create .git repository option is broken and overrides .gitignore files.
Uncheck this option and initialize git after creating the project.

Add-in templates

  • Switched to Nice3point.Revit.Sdk. Boilerplate code in .csproj has been significantly reduced.
  • Improved Dependency Injection support.
  • C# 14 features support.
  • New LaunchRevit property for easier debugging.
  • New DeployAddin property (renamed from DeployRevitAddin).

MSBuild SDK for Revit Add-ins

  • New Nice3point.Revit.Sdk with pre-configured MSBuild targets and props.

An updated .csproj looks like this:

<Project Sdk="Nice3point.Revit.Sdk/6.0.0">

    <PropertyGroup>
        <DeployAddin>true</DeployAddin>
        <LaunchRevit>true</LaunchRevit>
        <IsRepackable>false</IsRepackable>
        <EnableDynamicLoading>true</EnableDynamicLoading>
        <Configurations>Debug.R22;Debug.R23;Debug.R24;Debug.R25;Debug.R26</Configurations>
        <Configurations>$(Configurations);Release.R22;Release.R23;Release.R24;Release.R25;Release.R26</Configurations>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Nice3point.Revit.Api.RevitAPI" Version="$(RevitVersion).*"/>
    </ItemGroup>

</Project>

No complex settings, frameworks and versions configuration, SDK takes care of it.

Migration from v5 to v6

Solution migration

  1. Delete .nuke folder and build folder.
  2. Delete installer folder.
  3. Create a temporary project using version 6.0.0 and copy the new build, installer folders to your solution.
  4. Update global.json to use .NET 10.
  5. Replace your .github/workflows or azure-pipelines.yml with the new versions from the template.

Project migration

  1. Update the Sdk attribute in your .csproj file to Nice3point.Revit.Sdk/6.0.0.
  2. Remove redundant properties from .csproj: RevitVersion, TargetFramework, RuntimeIdentifier, StartProgram, StartArguments.
  3. Remove conditional PropertyGroup containing RevitVersion and TargetFramework.
  4. Remove Nice3point.Revit.Build.Tasks PackageReference.
  5. Rename DeployRevitAddin to DeployAddin.
  6. Rename configurations from Debug R25 to Debug.R25 (replace space with dot). Names with spaces are not supported by BenchmarkDotNet and Unit test in JetBrains Rider.

Full changelog: 5.0.0...6.0.0

5.0.0

02 Apr 19:15

Choose a tag to compare

Solution template

  • The release publishing pipeline has been completely redesigned. Publishing is now based on tags instead of automatic push to main branch. This is aimed at better control to avoid unexpected situations. Also improved pre-release publishing, and releases from any branch, e.g. it is now possible to release an Alpha version from the develop branch. See Wiki for more details.
  • The installer now ignores all .pdb files.
  • Improved Readme file, added all detailed documentation about building and publishing the project. Readme file is dynamic and depends on the settings specified when creating Solution.
  • Code coverage with documentation.
  • Reworked .yml files.
  • Simplified some code.
  • Added support for .NET 9.
  • Added support for Revit 2026.
  • Removed support for Revit 2020. For support, add it manually by guide.

Solution migration from v4 to v5

  1. Create a completely clean project with the same name based on v5 of the template.
  2. Copy the following folders and files to your working project with replacement:
    • build folder.
    • install folder.
    • Readme.md file.
    • .yml files.
  3. Review the Git Diff carefully:
    • Keep your custom GUIDs and project names.
    • Preserve any user-specific customizations.
    • Roll back any changes to your business logic.
  4. Update your solution's dependencies to match v5 requirements.
  5. Test the build process to ensure everything compiles correctly.

Add-in templates

  • Enabled Nullable by default.
  • Added IsRepackable property, disabled by default. Read more.
  • Added ManifestSettings section to manifest for enabling dependency isolation, starting with Revit 2026 API.
  • Added more WPF converters.
  • Fixed typos.
  • Updated dependencies.
  • Added support for Revit 2026.
  • Removed support for Revit 2020.

Add-in migration from v4 to v5

  1. Update your .csproj file:

    <!-- Replace this line -->
    <PublishAddinFiles>true</PublishAddinFiles>
    
    <!-- With these lines -->
    <DeployRevitAddin>true</DeployRevitAddin>
    <EnableDynamicLoading>true</EnableDynamicLoading>
  2. Update your .addin file by adding the ManifestSettings to enable add-in isolation in the Revit 2026:

    <RevitAddIns>
      <!-- ... existing settings ... -->
       <ManifestSettings>
           <UseRevitContext>False</UseRevitContext>
           <ContextName>RevitAddIn</ContextName>
       </ManifestSettings>
    </RevitAddIns>
  3. Review and update any nullable reference types in your code as they are now enabled by default.

Full changelog: 4.0.7...5.0.0

4.0.7

25 Aug 20:12

Choose a tag to compare

  • Moved commands from the Module template.
    Please keep the commands in the Primary project that contains External Application to avoid isolation issues.
    Issue: Nice3point/RevitToolkit#7
  • Removed WindowsController class to simplify templates
  • Updated descriptions

Full changelog: 4.0.6...4.0.7

4.0.6

22 Jul 16:16

Choose a tag to compare

  • Conditions for generating the Solution readme. The documentation considers which options you have created the solution with
  • Replaced GetService with GetRequiredService for DI templates
  • Renamed some default files that use DI
  • Updated summary

Full changelog: 4.0.5...4.0.6

4.0.5

23 Jun 06:38

Choose a tag to compare

Full changelog: 4.0.4...4.0.5

4.0.4

21 May 13:12

Choose a tag to compare

  • Removed template engine "isEnabled" property. Visual Studio does not support it compared to Jetbrains Rider.
    This property caused an exception to create a Module project without UI.
    Thanks to @SergeyNefyodov for finding this bug

Full changelog: 4.0.3...4.0.4

4.0.3

14 Apr 13:34

Choose a tag to compare

  • Removed Core folder. It's seldom used, especially in small plugins, so it's removed by default. Thank you for your feedback
  • Updated templates description
  • Disabled dotnet clean logo for solution template

Full changelog: 4.0.2...4.0.3

4.0.2

08 Apr 10:05

Choose a tag to compare

Full changelog: 4.0.1...4.0.2

4.0.1

02 Apr 13:36

Choose a tag to compare

Full changelog: 3.2.2...4.0.1

3.2.2

11 Jan 10:55

Choose a tag to compare

  • Fix Github release version validation

Full changelog: 3.2.0...3.2.1