-
Notifications
You must be signed in to change notification settings - Fork 0
Host Architecture
Truong Giang Vu edited this page May 31, 2026
·
1 revision
RevitDevTool is a development platform for .NET-based CAD/BIM applications. Features are implemented in shared DevTools.* libraries and reused across hosts. Currently supports Revit and AutoCAD-family — the architecture is designed for any .NET-capable host (Tekla, Bentley, Rhino, etc.).
| Feature | Revit | AutoCAD Family |
|---|---|---|
| Dockable tool UI | Yes | Yes |
| Python 3.13 scripts | Yes | Yes |
| PEP 723 + Pixi dependencies | Yes | Yes |
| VSCode Python debugging | Yes | Yes |
| .NET add-in execution | Yes | Yes |
| C# / F# scripts | Yes | Yes |
| IronPython (pyRevit runtime) | Yes | Yes |
| Logging panel | Yes | Yes |
| MCP (standalone server) | Yes | Yes |
| MCP (in-host tools) | Yes | Yes |
| PyTest bridge | Yes | Yes |
Document bridge (IDocumentBridge) |
Yes | Yes |
| Startup dialog resolver | Yes | Yes |
| Geometry visualization | Yes (DirectContext3D) | N/A |
| Geometry trace interception | Yes | N/A |
| Command Browser | Yes | Not yet |
| Concept | Revit | AutoCAD |
|---|---|---|
| App entry point |
__revit__ builtin (UIApplication) |
Static Application class |
| Active document | UIApp.ActiveUIDocument.Document |
Application.DocumentManager.MdiActiveDocument |
| Transactions | Transaction(doc, name) |
db.TransactionManager.StartTransaction() |
| Document lock | Not required | doc.LockDocument() |
| Element collection | FilteredElementCollector |
Transaction.GetObject() with OIDs |
| State attribute | sys.__devtool__ |
sys.__devtool__ |
| Named Pipe | Revit_{year}_{pid} |
{Product}_{year}_{pid} |
The AcadDevTool add-in loads in all AutoCAD-family products:
| Vertical | Product ID | Pipe Prefix |
|---|---|---|
| AutoCAD | 01 |
AutoCad |
| Civil 3D | 03 |
Civil3D |
| Architecture | 04 |
Product-specific |
| MEP | 05 |
Product-specific |
| Electrical | 06 |
Product-specific |
| Mechanical | 12 |
Product-specific |
| Map 3D | 14 |
Product-specific |
| Plant 3D | 16 |
Plant3D |
If a page says "Revit API", "DirectContext3D", or "Revit command", assume that behavior is Revit-only. For execution, logging, MCP, and testing workflows, all hosts follow the same platform model.
- Run Code Overview
- Modern Python Scripting
- Python Debugging
- Python Ecosystems
- RevitDevTool And pyRevit
- Python Stub Generation
- Run .NET Add-ins
- Scripting Runtimes