1- # Apibim. Revit.Extensions — Developer Guide
1+ # Revit.Extensions — Developer Guide
22
33## Project overview
44
55Open-source library of Revit API extension methods, designed to support all Revit versions from 2019 to 2027.
6- Published as a NuGet package: ` Apibim. Revit.Extensions` .
6+ Published as a NuGet package: ` Revit.Extensions ` .
77
88## Repository structure
99
1010```
11- Apibim. Revit.Extensions/
11+ Revit.Extensions/
1212├── .github/workflows/
1313│ ├── ci.yml ← Build + test on every push / PR
1414│ └── cd.yml ← Pack + publish NuGet on tag v*.*.*
15- ├── source/
16- │ └── Apibim.Revit.Extensions/
17- │ ├── Apibim.Revit.Extensions.csproj
15+ ├── Revit.Extensions/
16+ │ ├── Revit.Extensions.csproj
1817│ └── Extensions/
1918│ ├── ElementExtensions.cs
2019│ ├── GeometryExtensions.cs
2120│ ├── PointExtensions.cs
2221│ ├── DocumentExtensions.cs
2322│ └── AsyncTasksExecutor.cs
24- ├── tests/
25- │ └── Apibim.Revit.Extensions.Tests/
26- │ ├── Apibim.Revit.Extensions.Tests.csproj
23+ ├── Revit.Extensions.Tests/
24+ │ ├── Revit.Extensions.Tests.csproj
2725│ └── Extensions/
2826│ ├── GeometryExtensionsTests.cs
2927│ ├── AsyncTasksExecutorTests.cs
@@ -32,14 +30,13 @@ Apibim.Revit.Extensions/
3230├── Directory.Build.props ← Imports Build.props; sets Nullable/ImplicitUsings/LangVersion
3331├── nuget.config
3432├── .gitignore
35- └── Apibim. Revit.Extensions.sln
33+ └── Revit.Extensions.sln
3634```
3735
3836## Build configurations
3937
4038| Configuration | Revit | TargetFramework |
4139| ---------------| -------| -----------------|
42- | R2019 | 2019 | net47 |
4340| R2020 | 2020 | net47 |
4441| R2021 | 2021 | net48 |
4542| R2022 | 2022 | net48 |
@@ -55,23 +52,20 @@ Each configuration sets `REVIT_<year>` as a compile-time constant (e.g. `REVIT_2
5552
5653``` bash
5754# Build for a specific Revit version
58- dotnet build source/Apibim. Revit.Extensions -c R2026
55+ dotnet build source/Revit.Extensions -c R2026
5956
6057# Build all versions (PowerShell)
6158foreach ($c in @ (" R2021" ," R2022" ," R2023" ," R2024" ," R2025" ," R2026" )) {
62- dotnet build source/Apibim. Revit.Extensions -c $c
59+ dotnet build source/Revit.Extensions -c $c
6360}
6461
65- # Run tests (always with R2025 — only version that works headless)
66- dotnet test tests/Apibim.Revit.Extensions.Tests -c R2025
67-
6862# Create NuGet package
69- dotnet pack source/Apibim. Revit.Extensions -c R2026 --output ./nupkgs
63+ dotnet pack source/Revit.Extensions -c R2026 --output ./nupkgs
7064```
7165
7266## NuGet package
7367
74- - ** PackageId:** ` Apibim. Revit.Extensions`
68+ - ** PackageId:** ` Revit.Extensions `
7569- ** Version scheme:** ` {RevitYear}.0.{patch} ` → e.g. ` 2026.0.1 `
7670- ** Trigger CD:** push a tag matching ` v*.*.* ` → ` git tag v2026.0.1 && git push --tags `
7771- ** Secret required:** ` NUGET_API_KEY ` in GitHub repository secrets
@@ -91,10 +85,10 @@ Example in `PointExtensions.cs`:
9185
9286## Adding new extensions
9387
94- 1 . Create ` source/Apibim. Revit.Extensions/Extensions/MyExtensions.cs`
95- 2 . Use ` namespace Apibim. Revit.Extensions; `
88+ 1 . Create ` Revit.Extensions/Extensions/MyExtensions.cs `
89+ 2 . Use ` namespace Revit.Extensions; `
96903 . Mark class ` public static `
97- 4 . Add unit tests in ` tests/... /Extensions/MyExtensionsTests.cs`
91+ 4 . Add unit tests in ` Revit.Extensions.Tests /Extensions/MyExtensionsTests.cs`
9892
9993## Notes
10094
0 commit comments