Skip to content

Modernize CASE Apps for Revit 2025–2027 - #11

Open
johnpierson wants to merge 3 commits into
masterfrom
modernize/revit-2025-2027
Open

Modernize CASE Apps for Revit 2025–2027#11
johnpierson wants to merge 3 commits into
masterfrom
modernize/revit-2025-2027

Conversation

@johnpierson

Copy link
Copy Markdown
Owner

Summary

Brings the open-source CASE Apps suite into the current Revit era: SDK-style projects, .NET 8 / .NET 10, and first-class support for Revit 2025, 2026, and 2027.

The old multi-year shell layout (duplicate projects per year + SharedProjects, Framework 4.8, local Revit install path references) is replaced with a single modern project per add-in, NuGet-based Revit APIs, and a clean build → deploy → install path.

41 of 41 modern add-ins build for 2025, 2026, and 2027. Ribbon icons load correctly. Dev install + smoke checks are scripted.

Why this matters

Before After
Revit 2020–2023 shells, .NET Framework 4.8 Revit 2025–2027, net8 / net10
Hardcoded C:\Program Files\Autodesk\Revit … Nice3point.Revit.Api packages
~4 project copies per app One SDK project under src/<App>/modern/
deploy/20152023 prebuilts deploy/20252027 from the modern build
Manual copy for testing Install-CaseApps.ps1 + SmokeTest-CaseApps.ps1

What’s included

Build system

  • src/Directory.Build.props / Directory.Build.targets — shared TFMs, Revit package refs, per-year output isolation, deploy copy
  • src/CaseApps.sln — all modern add-ins
  • build.ps1 — build one or all years (-p:RevitVersion=…)
  • src/global.json — SDK roll-forward for .NET 10
Year TFM API packages
2025 net8.0-windows Nice3point.Revit.Api.*
2026 net8.0-windows Nice3point.Revit.Api.*
2027 net10.0-windows Nice3point.Revit.Api.*

API / code modernization

  • ElementId.IntegerValueElementId.Value (WorksetId still uses IntegerValue)
  • BuiltInParameterGroupGroupTypeId / ForgeTypeId + ParameterUtils.GetAllBuiltInGroups()
  • WinForms vs Revit TaskDialog ambiguity resolved
  • Revit 2027: ViewType.PresureLossReportPressureLossReport (version-gated)
  • Ribbon icons: embed Icons/*.png as Case.AppsRibbon.<name>.png for GetManifestResourceStream
  • Exceler8: minimal HtmlTextWriter shim for net8/net10; Newtonsoft / Excel Interop / charting packages where needed

Installer and packaging

  • CaseApps-installer.iss retargeted to 2025 / 2026 / 2027 (version 27.1.0)
  • Layout: %AppData%\Autodesk\Revit\Addins\<year>\Case.Apps\ + Case.Apps.addinCase.Apps\Case.AppsRibbon.dll
  • Rebuilt CASEApps-installer.exe included

Tooling

  • tools/Install-CaseApps.ps1 — install/uninstall for smoke testing
  • tools/SmokeTest-CaseApps.ps1 — offline PE/manifest/core assembly checks
  • tools/Convert-ToModern.ps1 — historical conversion helper

Cleanup

  • Removed legacy year shells (*2020*2023), SharedProjects, per-app solutions, CaseAppsAll.sln
  • Removed deploy/20152023 and old install zip baggage

Out of scope / known gaps

  • Case.Subs.OpenNURBS — not in the modern solution (legacy Framework OpenNURBS wrapper)
  • VB → C# — intentionally left as VB; only projects/tooling/APIs modernized
  • Full interactive QA of every command in-session is still recommended beyond ribbon + smoke scripts

How to verify

# Build
.\build.ps1 -RevitVersions 2026

# Dev install
.\tools\Install-CaseApps.ps1 -RevitYear 2026
.\tools\SmokeTest-CaseApps.ps1 -RevitYear 2026 -FromInstall

# Then open Revit 2026 → CASE Apps #1 / #2 ribbons (icons should show)

Or use the Inno Setup installer for multi-year deployment.

Test plan

  • dotnet build all 41 apps for Revit 2025, 2026, and 2027
  • Offline smoke test (manifest, PE, core DLLs)
  • Dev install into Revit 2026 Addins folder
  • Ribbon tabs load with icons in Revit 2026
  • Spot-check a few free + pro commands in a real model (reviewer)
  • Optional: compile ISS and install via installer on a clean machine

Commits

  1. fddbebf — Modernize CASE Apps for Revit 2025–2027
  2. 9c823ee — Fix ribbon icons (embedded PNG resources)
  3. 76887df — Rebuilt installer + .addin alignment

Replace year-shell SharedProjects with SDK-style net8/net10 projects, Nice3point Revit API packages, and deploy outputs for 2025-2027. Remove legacy 2015-2023 deploy bits and year folders, update Inno Setup, and add install/smoke-test scripts. 41 add-ins build for all three years; OpenNURBS remains out of the modern solution.
SDK-style projects did not embed Icons/*.png with the Case.AppsRibbon.<name>.png manifest names expected by LoadPngImgSource. Mark icons as EmbeddedResource with the correct LogicalName and rebuild deploy binaries.
Ship CASEApps-installer.exe from the updated Inno Setup script, align year-folder .addin manifests with the modern Case.Apps path layout, and relax the 64-bit install mode flag for broader Inno Setup compatibility.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant