Skip to content

Migration To v3.0

Truong Giang Vu edited this page May 31, 2026 · 1 revision

Migration To v3.0

v3.0 is a major architecture shift from the v2.x Revit-only toolset to a development platform for .NET-based CAD/BIM applications. Currently supports Revit and AutoCAD-family, designed to extend to any .NET-capable host.

What Changed Since v2.x

Architecture

v2.x v3.0
Revit-only codebase Shared DevTools.* platform + host-specific projects
RevitDevTool.sln RevitDevTool.slnx
Release R25 configs Release.Autodesk.2025 configs
Revit 2022–2026 Revit 2022–2027 + AutoCAD-family 2022–2027
.NET 4.8 / .NET 8.0 + .NET 10.0 (Revit 2027)

Python

v2.x v3.0
UV-first deps Pixi-first deps (conda-forge + PyPI)
sys.__revitdevtool__ sys.__devtool__ (unified for all hosts)

New Capabilities

Feature Notes
AutoCAD host Full execution, logging, MCP, PyTest
Civil 3D, Plant 3D Loaded via AutoCAD add-in
MCP server Standalone MCPServer.exe discovers all running hosts
MCP in-host tools execute_csharp_code, open_document
PyTest multi-host --host revit, --host autocad, --host civil3d
IronPython First-class script mode + pyRevit runtime support
C# / F# scripts Roslyn-based script execution
Revit Command Browser Searchable command access

Path Changes

Old Reference Current Location
RevitDevTool.sln RevitDevTool.slnx
source/RevitDevTool.PythonDemo/ Samples/PythonDemo/
source/RevitDevTool.DotnetDemo/ Samples/CSharpDemo/
Release R25, Debug R25 Release.Autodesk.2025, Debug.Autodesk.2025
Revit-only execution source Shared source/DevTools.Execution/ + host adapters

Python Package Management

v2.x docs were UV-centric. v3.0 is Pixi-first:

  • PEP 723 metadata still declares dependencies
  • Pixi environment: %APPDATA%\RevitDevTool\pixi-env\
  • Pixi resolves from conda-forge + PyPI channels
  • pip fallback for locked-down machines

Execution Modes

Mode File Pattern
CPython 3.13 *script.py
IronPython *_ipy_script.py
C# script *script.csx
F# script *script.fsx
.NET assembly .dll with supported command types

For pytest Plugin Users

The revitdevtool_pytest plugin v0.3.0 replaced Revit-specific CLI options:

Old (v0.2.x) New (v0.3.0)
--revit-version --host-version
--revit-pipe --host-pipe
--revit-launch --host-launch
--revit-timeout --host-timeout
N/A --host (revit, autocad, civil3d, etc.)

Config in pyproject.toml:

[tool.pytest.ini_options]
host_name = "revit"
host_version = "2025"

Logging

The logging backend has been re-architected:

v2.x v3.0
Serilog ZLogger (lower allocation, faster)
WinForms RichTextBox Scintilla.NET (handles large log volumes without freezing)

The user experience (syntax highlighting, color keywords, JSON formatting) remains the same.

Clone this wiki locally