Revit SDK refs assemblies.
Only metadata from assemblies by Refasmer.
Add project configurations with revit versions in name
<PropertyGroup>
<RevitVersion Condition="'$(RevitVersion)' == ''">2016</RevitVersion> <!-- set default revit version -->
<TargetFramework Condition="'$(TargetFramework)' == ''">net45</TargetFramework> <!-- set default target framework -->
<Configurations>Debug;Release;D2016;D2017;D2018;D2019;D2020;D2021;D2022;D2023;D2024;D2025</Configurations>
</PropertyGroup>
Add package reference
<ItemGroup>
<!-- package reference with revit dlls -->
<PackageReference Include="Autodesk.Revit.Sdk.Refs" Version="*" />
<PackageReference Include="Autodesk.Revit.Sdk.Refs.$(RevitVersion)" Version="*" />
</ItemGroup>
See sample project in this folder.
You should compile Debug or Release configuration.
Other configurations needs to help write code with constants.
dotnet build -c <Configuration> -p:RevitVersion=<RevitVersion>
DotNetBuild(s => s
.DisableNoRestore()
.SetProjectFile(<ProjectName>)
.SetConfiguration(<Configuration>)
.SetProperty("RevitVersion", (int) <RevitVersion>));
This constants defined to all supports revit version.
REVIT<RevitVersion>
REVIT<RevitVersion>_OR_GREATER
#if REVIT<RevitVersion>
// This code will be available for the specified version
#endif
#if REVIT<RevitVersion>_OR_GREATER
// This code will be available for all versions greater than specified
#endif
Copy libs
string version = "2026";
string oldVersion = "2025";
string target = @"lib";
string source = @"lib\" + oldVersion;
string originals = @"C:\Program Files\Autodesk\Revit " + version;
foreach (string enumerateFile in Directory.EnumerateFiles(source))
{
string fileName = Path.GetFileName(enumerateFile);
string targetFile = Path.Combine(target, version, fileName);
string originalFile = Path.Combine(originals, version, fileName);
Directory.CreateDirectory(Path.Combine(target, version));
File.Copy(originalFile, targetFile);
}
Install Refasmer and run:
refasmer -m -i -w AdWindows.dll
refasmer -r -i -w PackageContentsParser.dll
refasmer -r -i -w RevitAddInUtility.dll
refasmer -r -i -w RevitAPI.dll
refasmer -r -i -w RevitAPIBrowserUtils.dll
refasmer -r -i -w RevitAPIIFC.dll
refasmer -r -i -w RevitAPIMacros.dll
refasmer -r -i -w RevitAPIUI.dll
refasmer -r -i -w RevitAPIUIMacros.dll
refasmer -r -i -w RevitNET.dll
refasmer -m -i -w UIFramework.dll