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).

الانتقال إلى التثبيت

معلومات المصدر

المستودع
Nice3point/revit-skills
آخر نشاط في المصدر
٦ سبتمبر ٢٠٢٦ في ١٢:٤٠
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٣
التفرعات
٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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. |
عرض على GitHub