内容
# BimOn MCP
**通过 Claude AI 控制 Autodesk Revit · Navisworks · AutoCAD — 以及实时 Dynamo 图形 — 通过 MCP。**
BimOn MCP 是一款 [MCP(模型上下文协议)](https://modelcontextprotocol.io) 套件,允许 Claude(桌面版或代码版)
驱动您的桌面 Autodesk BIM 主机:查询模型,运行 IronPython 脚本,保存可重复使用的脚本到主机内
调色板,并读取/构建/运行 **Dynamo** 图形 — 所有操作均通过自然语言。
> 作者:**JungGeun Park (General Soju)** · [YouTube @GeneralSoju](https://www.youtube.com/@GeneralSoju) · sojunbeer119@gmail.com
> MIT 许可证 · 社区版(Revit / Navisworks / AutoCAD / Dynamo)。
**源代码和下载:** [github.com/General-Soju/BimOnMcp](https://github.com/General-Soju/BimOnMcp) — 或扫描:
<img src="docs/bimonmcp-qr.png" alt="BimOnMcp 仓库二维码" width="150" />
---
## 支持的版本
| | 2025 | 2026 | 2027 |
|--|:--:|:--:|:--:|
| **Revit** | ✅ | ✅ | ✅ |
| **AutoCAD** (+ Civil 3D / Map 3D / Plant 3D … 垂直产品) | ✅ | ✅ | ✅ |
| **Navisworks** | ✅ | ✅ | ✅ |
| **Dynamo for Revit** | ✅ 3.x | ✅ 3.x | ✅ |
- Revit / AutoCAD:单个 **.NET 8** 构建加载到 2025–2027(IronPython 3.4.2)。
- Navisworks API 是按主版本不兼容的 → **每个版本构建**(`-p:NavisVersion=2026`)。
- Claude 客户端:**Claude Desktop + Claude Code** 均自动注册。
## 架构
```
Claude Desktop / Claude Code
│ MCP(JSON-RPC 2.0 via stdio)
▼
BimOnMcpBridge.exe ──[--target revit]──────► BimOnRevitPipe.<PID>
(自包含) active.json 查询 BimOnNavisPipe.<PID>
──[--target …]──────────► BimOnAcadPipe.<PID>
│ 命名管道(localhost)— 连接实例仅
┌─────────┼─────────┐
▼ ▼ ▼
Revit 插件 Navis 插件 AutoCAD 插件
(net8, +Dynamo) (net48, per-ver) (net8, R25–R28 捆绑)
```
多个相同产品的实例受支持 — 每个实例注册一个唯一的管道;桥接器路由到
**已连接(ON)** 实例在调色板中选择(`BimOn AI 脚本` → 连接/Connect)。
## MCP 工具
| 主机 | 专用 | 常用脚本工具 | Dynamo(仅限 Revit) |
|--------|:--:|:--:|:--:|
| Revit | 23 | 6 | **12** |
| Navisworks | 11 | 6 | — |
| AutoCAD | 13 | 6 | — |
**常用 6**: `execute_script` · `save_script` · `execute_saved_script` · `list_scripts` · `list_scripts_search` · `delete_script`
**Dynamo 12**: 读取(`dynamo_status`/`get_graph`/`get_node_values`)、控制(`set_input`/`run_current`)、
编辑(`add_node`/`add_code_block`/`add_python_node`/`connect`/`delete_node`)、 **`dynamo_search_nodes`**
(查找确切的 OOTB 节点创建名称)和 **`dynamo_build_graph`** (批量构建多个节点+连接在一个调用中)。
一个 `dynamo-mcp` Claude 技能包含在内(`skills/dynamo-mcp`)。
## 安装
从 **[最新版本](https://github.com/General-Soju/BimOnMcp/releases/latest)** 下载安装程序并以普通用户身份运行
(非管理员)。参见 **[INSTALL_GUIDE.md](INSTALL_GUIDE.md)** 获取详细信息。安装后,
重启 Claude Desktop / Code。
> 安装程序未签名 → Windows SmartScreen 可能会警告“Windows 保护了您的电脑”;单击 **更多信息 → 运行任何方式**。
> 使用发布页面上的 SHA-256 验证完整性。
| 组件 | 位置 |
|----------|-----------|
| MCP 桥接器 + 标准库 | `%AppData%\BimOnAI\` |
| Revit 插件 | `%AppData%\Autodesk\Revit\Addins\{2025·2026·2027}` |
| Navisworks 插件 | `%ProgramData%\Autodesk\Navisworks Manage {ver}\Plugins\` |
| AutoCAD 捆绑包 | `%AppData%\Autodesk\ApplicationPlugins\BimOnAcadPlugin.bundle\` |
| Claude 配置 | 桌面版 `claude_desktop_config.json` + 代码版 `~\.claude.json` (合并,现有设置保留) |
## 手动 MCP 注册(如果未自动注册)
如果 Claude 在安装和重启后未显示 `BimOn-*` 工具,请手动注册它们。
**配置文件(s)** — 编辑您使用的客户端配置文件(如果不存在,请创建;保留现有内容):
- Claude 桌面版: `%AppData%\Claude\claude_desktop_config.json`
- Claude 代码版: `%UserProfile%\.claude.json`
添加(或合并)这些 `mcpServers` 条目 — 使用 **双反斜杠** 并将 `<you>` 替换为您的 Windows 用户名:
```json
{
"mcpServers": {
"BimOn-Revit": { "command": "C:\\Users\\<you>\\AppData\\Roaming\\BimOnAI\\BimOnMcpBridge.exe", "args": ["--target","revit"] },
"BimOn-Navisworks": { "command": "C:\\Users\\<you>\\AppData\\Roaming\\BimOnAI\\BimOnMcpBridge.exe", "args": ["--target","navisworks"] },
"BimOn-AutoCAD": { "command": "C:\\Users\\<you>\\AppData\\Roaming\\BimOnAI\\BimOnMcpBridge.exe", "args": ["--target","autocad"] }
}
}
```
然后 **完全退出并重启** Claude Desktop / Claude Code。
或者,只需重新运行捆绑的合并脚本(保留其他设置,写入两个客户端):
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File "$env:AppData\BimOnAI\MergeClaudeConfig.ps1" -BridgePath "$env:AppData\BimOnAI\BimOnMcpBridge.exe"
```
**未注册的常见原因:**
- 在 Claude 打开时安装 → 仅需重启 Claude。
- 安装程序以 **管理员身份运行** → 配置/桥接器进入 **管理员帐户的 `%AppData%`**;以 **普通用户身份重新安装**,或将 `command` 路径指向正确的 `%AppData%`。
- **Claude Desktop 在退出时覆盖其配置** → 仅在 Claude **完全关闭** 时编辑文件,然后重新打开。
- 确认桥接器存在: `%AppData%\BimOnAI\BimOnMcpBridge.exe`。
## 从源代码构建
```bash
# Revit / AutoCAD / Navisworks 2025 + 桥接器
dotnet build BimOnMcp.sln -c Release
# Navisworks 每个版本(API v23 / v24)
dotnet build BimOnNavisPlugin -c Release -p:NavisVersion=2026 -p:OutputPath=bin\Release\net48-2026\ -p:AppendTargetFrameworkToOutputPath=false
dotnet build BimOnNavisPlugin -c Release -p:NavisVersion=2027 -p:OutputPath=bin\Release\net48-2027\ -p:AppendTargetFrameworkToOutputPath=false
# 桥接器(自包含的可执行文件)→ Installer\BridgeOutput
dotnet publish BimOnMcpBridge -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -o Installer/BridgeOutput
# 安装程序
ISCC.exe Installer/BimOnMcp.iss
```
## 注意事项 / 限制
- **每次一个连接实例** (通过调色板连接按钮切换)。
- **Navisworks** IronPython 2.7 标准库有限(`os, collections, functools, ntpath, __future__`)。
- **AutoCAD** 显式导入需要 `clr.AddReference('acdbmgd')` / `('acmgd')`。
- 操作 > 28 秒可能会超时后续请求。
## 许可证
**MIT** — 版权所有(c)2026 **JungGeun Park (General Soju)**。参见 [LICENSE](LICENSE)。
**联系方式:** sojunbeer119@gmail.com · [YouTube @GeneralSoju](https://www.youtube.com/@GeneralSoju)