Upgrade from 3.x to 4
RevitDevTool 4 changes how it installs and updates, how .NET tests run, and how an AI client talks to a host.
This page lists what to do when you move from 3.x to 4.0.0-beta.8 or later. For every change, see
Release Notes.
What changes
| Area | 3.x | 4 |
|---|---|---|
| Installer | Inno Setup, with an uninstall entry in Windows Apps | RevitDevTool-Setup.exe from a daemon/v... release; no administrator rights |
| Add-in | One RevitDevTool.bundle for every host | RevitDevTool.bundle for Revit and AcadDevTool.bundle for the AutoCAD family; only the hosts you select |
| Daemon and MCP server | Inside the add-in bundle | %LOCALAPPDATA%\RevitDevTool\current\DevTools.Daemon.exe |
| Updates | Download and run a new installer | Updates tab in the Daemon window; the Daemon and the add-in update separately |
| Versions | One version for everything | Four products with their own versions: Daemon, add-in, RevitDevTool.TestAdapter, revitdevtool-pytest |
| MCP tools | list_host_instances, launch_host, open_model, read_file_info | list_processes, launch_host, read_file_info, code_mode |
| .NET tests | Not available | NUnit, TUnit, or MSTest through RevitDevTool.TestAdapter |
| pytest | revitdevtool_pytest from its own repository | revitdevtool-pytest 0.6.1, built from this repository |
1. Remove 3.x
The 4 installer does not remove a 3.x install. Do it first, so the old Daemon and the old bundle do not stay behind.
- Close Revit, AutoCAD, and every other Autodesk host.
- Quit the old Daemon from the notification area, if it is running.
- Open Windows Settings, Apps, Installed apps, find RevitDevTool, and choose Uninstall.
- Check that
%APPDATA%\Autodesk\ApplicationPlugins\RevitDevTool.bundleis gone. Delete the folder if it is still there.
2. Install 4
- Download
RevitDevTool-Setup.exefrom the newestdaemon/v...release on GitHub Releases and run it. - Open the Daemon window and go to the Updates tab.
- Tick Include pre-releases while 4 is in beta.
- Tick each host and version you use, then choose Update. Each row installs the add-in for that host and version.
- Start the host. The panel title shows the installed version, for example
DevTools 4.0.0-beta.8.
See Installation for the ribbon buttons and a first script.
3. Keep it up to date
- The Daemon and the add-in each follow a channel:
stable, orprereleasewhen Include pre-releases is on. - Check for updates looks for new versions. Install updates automatically installs them without asking.
- An add-in update for a host that is running waits until that host closes. The other hosts update right away.
- Restart the host after an add-in update, so it loads the new version.
- Releases of
4.0.0-beta.7and earlier cannot read the new update channel. If you installed one of them, runRevitDevTool-Setup.exeonce more.
4. Point your AI client at the new server
The MCP server is the Daemon itself. Replace the old command in your client's MCP configuration:
mcp.json
{
"mcpServers": {
"revitdevtool": {
"type": "stdio",
"command": "%LOCALAPPDATA%/RevitDevTool/current/DevTools.Daemon.exe",
"args": ["--stdio"]
}
}
}
Tools that changed:
| 3.x | 4 |
|---|---|
list_host_instances | list_processes |
open_model | open_document, called inside the host through code_mode |
| Searching and calling host tools one by one | code_mode: the client writes one short C# program that searches, describes, invokes, and reads host capabilities |
The full list is in MCP Protocol.
5. Reload your toolsets
- Load a .NET toolset from the MCP toggle in the panel with Load .NET Toolset, or a Python toolset folder (a
*mcp.pyentry file) with Load Python Toolset. An AI client can do the same withadd_tools. - A .NET toolset ships its own
ModelContextProtocolpackage. Keep it copy-local and do not setExcludeAssets="runtime"; the host does not lend its copy. A toolset built without it loads but cannot return results. - Rebuild the toolset against the MCP SDK version in MCP .NET.
6. Update your tests
pytest
- Install
revitdevtool-pytest0.6.1(see pytest). - Renamed options:
| Old option | New option |
|---|---|
--host-launch | --force-launch |
--host-launch-timeout | --launch-timeout |
--host-timeout | --per-test-timeout |
- The host pipe is now named
DevTools_{Host}_{Version}_{PID}. Update--host-pipeif you pass it. - IronPython tests: name the file
test_*_ipy.pyand writeunittesttest cases (see unittest).
.NET tests (new)
- Add the
RevitDevTool.TestAdapterpackage,0.3.0or later, and pin NUnit, TUnit, or MSTest yourself. The add-in ships no test framework. - The adapter needs the add-in
4.0.0-beta.8or later and the .NET 10 runtime on the machine that runsdotnet test. - If a project already uses an adapter from
0.0.1to0.2.0with a 4 beta, move it to0.3.0and add the framework package it runs. - Start with Testing Overview.
What stays the same
- Scripts keep their entry files and the shared state on
sys.__devtool__. - Settings and logs stay under
%APPDATA%\RevitDevTool. - Supported hosts: Revit, AutoCAD, Civil 3D, Plant 3D, and the AutoCAD verticals, 2022 to 2027.