Skip to main content

revit-multi-version-configuration

Support multiple Autodesk Revit versions in one project with Debug.RNN/Release.RNN configurations and REVIT#### conditional compilation. USE FOR: declaring the supported-version matrix, adding or removing a version, and writing #if REVIT####_OR_GREATER branches for genuine API differences. DO NOT USE FOR: what the SDK derives per version (use revit-sdk-project-configuration), or referencing the Revit API packages (use revit-api-references).

Aller à l'installation

Informations de source

Dépôt
Nice3point/revit-skills
Dernière activité de la source
6 septembre 2026 à 12:40
Langue détectée de SKILL.md
anglais
Étoiles
13
Forks
3

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
revit-multi-version-configuration
description
Support multiple Autodesk Revit versions in one project with Debug.RNN/Release.RNN configurations and REVIT#### conditional compilation. USE FOR: declaring the supported-version matrix, adding or removing a version, and writing #if REVIT####_OR_GREATER branches for genuine API differences. DO NOT USE FOR: what the SDK derives per version (use revit-sdk-project-configuration), or referencing the Revit API packages (use revit-api-references).
license
MIT
# Revit Multi-Version Configuration A Revit project builds one configuration per supported year. The `Nice3point.Revit.Sdk` derives the framework and the cumulative `REVIT####` / `REVIT####_OR_GREATER` symbols from the active `Debug.RNN` / `Release.RNN` configuration. ## When to use - Declaring or changing which Revit years a project supports. - Writing version-specific code for a real API difference. ## When not to use - Understanding what the SDK sets automatically per version — use `revit-sdk-project-configuration`. - Adding the Revit API assembly references — use `revit-api-references`. ## Workflow ### Step 1: Declare the configuration matrix ```xml <Configurations>Debug.R25;Debug.R26;Debug.R27</Configurations> <Configurations>$(Configurations);Release.R25;Release.R26;Release.R27</Configurations> ``` Mirror the same `Debug.RNN`/`Release.RNN` set in the .slnx/.sln file. ### Step 2: Add or remove a version Add or remove the matching `Debug.RNN` / `Release.RNN` in the solution and the project's `<Configurations>`. For a newly released year, first update the SDK; set `TargetFramework` explicitly only when the SDK is not released with the latest Revit version support or the project uses the preview API package: ```xml <TargetFramework Condition="$(RevitVersion) == '2027'">net10.0-windows7.0</TargetFramework> ``` ### Step 3: Add preprocessor directives for incompatible API Write shared code first. Add a `#if` branch only where the Revit API genuinely differs; keep both branches independently compilable. ```csharp #if REVIT2024_OR_GREATER // API available from Revit 2024 onward #else // legacy API #endif ``` ### Step 4: Verify Restore and build every declared configuration, and run version-specific tests for each branch that changed. ## Validation - [ ] The active solution matrix selects the intended project `Debug.RNN`/`Release.RNN` configurations. - [ ] `#if` branches cover only genuine API differences, and both sides compile. - [ ] Every declared configuration restores and builds. ## Common Pitfalls | Pitfall | Correct approach | |-----------------------------------------------------|---------------------------------------------------| | Editing configurations through the IDE dialog | Edit `<Configurations>` in the `.csproj` by hand. | | A `#if` around code that is identical on both sides | Keep it shared; branch only on real differences. | | Solution and project matrices drifting apart | Keep both lists identical. | | A branch that only compiles for one version | Ensure both `#if` sides build. |
Voir sur GitHub