Revit MCP
通过模型上下文协议将Claude连接到Autodesk Revit。
支持的版本
| Revit | 。NET目标 | ElementId | 状态 |
|---|---|---|---|
| 2022 | 净值4.8 | int 构造器+ IntegerValue | 支持 |
| 2023年 | 净值4.8 | int 构造器+ IntegerValue | 支持 |
| 2024 | 净值4.8 | long 构造器+ Value (int已弃用) | 支持 |
| 2025 | 网络8.0 windows | long 构造器+ Value (int已弃用) | 支持 |
| 2026 | 网络8.0窗口 | long 构造器+ Value 仅(int 移除) | 支持 |
| 2027 | net8.0-windows(预期) | 与2026年相同(预期) |
建筑
Claude (Claude Desktop / Claude Code)
| MCP (stdio)
v
mcp-server/ ` 到部署的完整路径 `RevitMcpBridge.dll`
复制 `RevitMcpBridge.addin` 致:
%APPDATA%\Autodesk\Revit\Addins\2026\
替换 `2026` 您的Revit版本年份。
重新启动Revit。查看日志 `%LOCALAPPDATA%\RevitMcpBridge\bridge.log`.
### 3.构建MCP服务器
cd mcp-server npm install npm run build
### 4.向Claude注册
添加到您的Claude桌面配置(`%APPDATA%\Claude\claude_desktop_config.json`):
{ "mcpServers": { "revit": { "command": "node", "args": ["C:/path/to/RevitMCP/mcp-server/dist/index.js"], "env": { "REVIT_BRIDGE_PORT": "8765" } } } }
重新启动克劳德桌面。Revit工具将出现在Claude的工具列表中。
## 自定义端口
集 `REVIT_MCP_PORT` 启动Revit之前:
$env:REVIT_MCP_PORT = "9000" & "C:\Program Files\Autodesk\Revit 2026\Revit.exe"
在MCP服务器配置中匹配它: `"REVIT_BRIDGE_PORT": "9000"`.
## 多版本构建说明
C#项目使用条件编译来处理API的差异:
- **`ElementIdHelper.cs`** 包裹 `ElementId` 构造和值提取,以便对所有Revit版本(2022-2027)编译相同的代码。
- 编译符号(`REVIT2026`, `REVIT_V_GTE_2024`, `REVIT_V_GTE_2026`等)基于 `-p:RevitVersion=` 构建参数。
- 2022-2024年修订目标 `net4.8`;Revit 2025+目标 `net8.0-windows`.
### Revit 2026已处理重大更改
- `ElementId(int)` 构造函数 **移除** ->使用 `ElementId(long)` 通过 `ElementIdHelper.Create()`
- `ElementId.IntegerValue` **移除** ->使用 `ElementId.Value` 通过 `ElementIdHelper.GetValue()`
- CefSharp已从Revit安装中删除(不影响此附加模块)
- 插件依赖隔离现在可用(`UseRevitContext` 清单选项)
### Revit 2027准备
Revit 2027尚未发布,但该项目已预先布线:
- `REVIT2027` 和 `REVIT_V_GTE_2027` 编译符号就绪
- 预计将继续。净值8/ `net8.0-windows`
- `ElementIdHelper` 已经使用64位API,因此不需要进一步迁移
- 注意:弃用的API将被删除(电气类、Curve.Intersect重载、Zone API、钢筋挂钩到终止重命名),以及潜在的新的所需清单设置
## 故障排除
|问题|修复|
|---------|-----|
|无法访问桥|检查Revit是否加载了附加模块(“附加模块”选项卡)|
|端口权限被拒绝|注册HTTP前缀(见下文)|
|Dynamo脚本失败|确保DynamoRevit已安装且路径正确|
|未找到pyRevit |将pyRevit添加到PATH|
|文件保存失败|确保目标文件夹存在并且Revit具有写入权限|
|程序集版本冲突(2026+)|已设置 `UseRevitContext` 到 `false` in.addin清单|
### 注册HTTP前缀(一次性,以管理员身份运行)
netsh http add urlacl url=http://localhost:8765/ user=Everyone
