Skip to main content

revit-sdk-project-configuration

Configure the Revit project .csproj with the MSBuild Nice3point.Revit.Sdk. USE FOR: setting the project SDK, or configuring the target framework, implicit usings, language version, or add-in defaults. DO NOT USE FOR: adding or removing a supported Revit version (use revit-multi-version-configuration), referencing the Revit API assemblies (use revit-api-references), or publishing the add-in (use revit-addin-publishing).

Ir para a instalação

Informações da origem

Repositório
Nice3point/revit-skills
Última atividade na origem
6 de setembro de 2026 às 12:40
Idioma detectado do SKILL.md
inglês
Estrelas
13
Forks
3

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
revit-sdk-project-configuration
description
Configure the Revit project .csproj with the MSBuild Nice3point.Revit.Sdk. USE FOR: setting the project SDK, or configuring the target framework, implicit usings, language version, or add-in defaults. DO NOT USE FOR: adding or removing a supported Revit version (use revit-multi-version-configuration), referencing the Revit API assemblies (use revit-api-references), or publishing the add-in (use revit-addin-publishing).
license
MIT
# Revit SDK Project Configuration The `Nice3point.Revit.Sdk` MSBuild SDK derives Revit-project defaults from the active build configuration; the project file carries no hand-written per-configuration settings. ## When to use - Creating or reviewing a Revit project's `.csproj`. - Deciding which properties to set explicitly and which the SDK already provides. ## Workflow ### Step 1: Set the SDK Reference the SDK, pinning the current published version: ```xml <Project Sdk="Nice3point.Revit.Sdk/<version>"> ``` ### Step 2: Let the SDK resolve the Revit version The SDK reads `$(RevitVersion)` from digits in the active configuration name — `Release.R27` and `Debug.R27` both resolve to `2027`, and a four-digit form (`Release.2027`) resolves to `2027` as-is. A configuration with no resolvable version fails the build with a clear error; set `$(RevitVersion)` explicitly only to override the derivation. ### Step 3: Let the SDK derive the framework and build defaults From `$(RevitVersion)` the SDK sets the defaults otherwise hand-written per project and per configuration: - The `TargetFramework` for each Revit version, from the official framework mappings Autodesk provides. - `LangVersion=latest`, `Nullable=enable`, `ImplicitUsings=true`, `ImplicitRevitUsings=true`. - `AppendTargetFrameworkToOutputPath=false` for a flat output path when the add-in works on a single framework version. - Per-configuration `Optimize`, `DebugSymbols`, and `DebugType` (`portable` for `Debug.*`, `none` for `Release.*`), and the `DEBUG`/`RELEASE` constants. - The `REVIT####` and `REVIT####_OR_GREATER` compilation symbols for multi-version branching (see `revit-multi-version-configuration`). ### Step 4: Control implicit Revit usings Based on the referenced assemblies, the SDK adds global usings for `Autodesk.Revit.DB`, `JetBrains.Annotations`, `Nice3point.Revit.Toolkit`, `Nice3point.Revit.Extensions`, and the CommunityToolkit MVVM namespaces; a typical file needs no `using` block. Turn them all off with `<ImplicitRevitUsings>false</ImplicitRevitUsings>`, or drop a single one with `<Using Remove="Autodesk.Revit.DB" />`. ### Step 5: Set the few properties in a root add-in project The SDK does not author the `.addin` manifest — it copies and version-patches the one the project provides (see `revit-addin-publishing`). The .NET SDK then emits the runtime config and copies NuGet dependencies to the output folder, where Revit can load them: ```xml <LaunchRevit>true</LaunchRevit> <DeployAddin>true</DeployAddin> <EnableDynamicLoading>true</EnableDynamicLoading> ``` ### Step 6: Verify Restore and build; confirm the target framework and the emitted `REVIT####` symbols match the active configuration. ## Validation - [ ] The project sets `Sdk="Nice3point.Revit.Sdk/…"`. - [ ] The target framework, language version, and usings are left to the SDK, not hand-written. - [ ] Implicit usings are adjusted through SDK properties, not a manual using list. ## Common Pitfalls | Pitfall | Correct approach | |--------------------------------------------------------|----------------------------------------------------------------------------------| | Hand-writing `<TargetFramework>` per version | Let the SDK derive it from `RevitVersion`. | | Configuration name with no version number | Add the year (`Release.R27`); the SDK errors when `RevitVersion` cannot resolve. | | Re-declaring `Nullable`/`LangVersion`/`ImplicitUsings` | The SDK already sets them. | | Removing `AppendTargetFrameworkToOutputPath=false` | Keep it; add-in publishing depends on the flat output path. | | SDK not found on restore | Pin an available `Nice3point.Revit.Sdk` version in the `Sdk` attribute. |
Ver no GitHub