关于 pynet-mcp-bridge
pynet-mcp-bridge 是连接 AI 模型与桌面 BIM 工具的 MCP 服务,供工程团队通过 PyNet 在实时模型中执行 Python 脚本并自动化 BIM 工作流。它还提供界面元素管理和脚本执行前的静态校验。
主要功能
- 01在 Navisworks、Revit 等工具中执行脚本
- 02创建和管理功能区选项卡与按钮
- 03检查运行中的 Autodesk 实例和插件状态
- 04执行前静态校验 AI 生成的脚本
- 05控制 BIM Viewer 并查看碰撞数据
适用场景
- 01查询当前模型选中项和碰撞结果
- 02在 BIM 模型中生成几何并修复脚本错误
- 03创建用于重复工程任务的自定义按钮
MCP 相关
作为 MCP 服务,向 AI 客户端提供 PyNet 环境控制、脚本执行、界面管理和 BIM Viewer 工具。脚本会在发送至宿主应用前经过校验。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
PyNet Bridge 是一个执行层,可让 AI 模型实时控制桌面 BIM 工具。
它将自然语言 → Python → 桌面 BIM 工具(Navisworks、Revit、AutoCAD、Rhino、Tekla Structures、RIB Presto)连接起来,使 AI 能够自主生成、执行和优化 BIM 工作流。
可用的集成包括 Navisworks Manage、Revit、Civil 3D、Rhino、Tekla Structures(2023–2026)和 RIB Presto(预算、COM API)。
该桥接层是 AI 逻辑与这些宿主的桌面 API 之间的连接纽带,可通过自然语言动态创建 UI、执行脚本并自动化 BIM 流程。
🎬 演示与教程
观看 PyNet Bridge 的实际运行——这些录屏展示了在运行中的 Autodesk 模型内,完整的自然语言 → BIM 操作工作流。
| 演示 | 描述 | 视频 |
|---|---|---|
| ⭐ 自主 BIM 协调(Revit + Navisworks) | Claude Code 同时驱动 Revit 和 Navisworks,审核模型、按容差规则解决碰撞、生成几何图形,并实时自行修正 API 错误。 | 🎬 在此观看 |
| PyNET + Codex 集成 | 介绍如何使用 Codex 配置 PyNet Bridge 并查询 Navisworks。 | 🎬 在此观看 |
⭐ 精选:自主 BIM 协调
在此技术演示中,Claude Code 同时连接 Navisworks 和 Revit,从头到尾执行完整的协调工作流:
- 以 Skill 形式定义工程标准 — AI 应用容差规则,判断哪些干涉可以自动批准。
- 实时数据审核 — 在协调之前验证模型完整性并检测缺失参数(
PYNET_Classification)。 - 自主生成几何图形 — 直接在 Revit 中生成建筑套管(pasatubos),并精确旋转空间方向以匹配管道角度。
- 自修复代码 — 遇到实时 Revit API 数据类型异常后,分析故障、即时重写脚本并完成任务。
🔄 工作原理
- 用户用自然语言描述任务。
- AI 生成 Python 脚本。
- PyNet Bridge 验证并发送脚本。
- PyNet 插件在 Autodesk 中执行脚本。
- 将结果返回给 AI。
这使 AI 从聊天机器人转变为 BIM 执行引擎。
🚀 PyNet Bridge 的强大之处
- AI → 行动: 将 AI 生成的代码转化为 Navisworks/Revit 中的实际操作
- 实时执行: 无需离开 BIM 环境即可立即运行脚本
- 动态创建 UI: 让 AI 即时创建工具、按钮和工作流
- 可靠通信: 快速且稳定,完全在本地运行
- 模型感知自动化: 直接操作实时 BIM 模型
🛠️ 安装
✅ 选项 A — 自动安装程序(推荐)
打开 PowerShell 并运行:
irm https://raw.githubusercontent.com/RAEN-DT/PyNetBridge/main/install.ps1 | iex
这将自动:
- 检查是否已安装 Python 3.10+
- 如果缺少
uv,则安装uv,然后使用uv从 PyPI 安装pynet-mcp-bridge(绝不使用pip) - 自动检测并配置所有已安装的 AI 客户端:
- Claude Desktop(标准版和 Microsoft Store 版本)
- Claude Code(VS Code 扩展 / CLI)
- Cline(VS Code 扩展)
- Roo Code(VS Code 扩展)
- Codex CLI(
~/.codex/config.toml)
pynet-mcp-bridge 软件包包含:
| 软件包 | 用途 |
|---|---|
| pynet-mcp-bridge | 通过 PyNET 将 AI 模型连接到桌面 BIM 工具的 MCP 服务 |
| mcp[cli](1.x) | Model Context Protocol SDK 和 CLI 工具 |
| psutil | 系统进程检测(查找正在运行的 Autodesk 实例) |
安装后,请重启 AI 客户端以应用更改。
📦 Python 库入门包(可选)
安装 PyNET 脚本推荐使用的 Python 库:
irm https://raw.githubusercontent.com/RAEN-DT/PyNetBridge/main/install-libraries.ps1 | iex
此操作将安装:
| 库 | 用途 |
|---|---|
| pandas | 数据分析与处理 |
| plotly | 交互式图表和可视化 |
| matplotlib | 静态绘图和图表 |
| dash | 使用 Python 构建 Web 仪表板 |
这些是 允许的 Python 导入项 中列出的第三方库。标准库模块(
json、sys、re等)已随 Python 一同提供。
前置条件
- 已在 Navisworks/Revit 中安装 PyNet Platform 插件。
- Python 3.10 或更高版本 → python.org — 支持 Python 3.14。
- uv → docs.astral.sh/uv — 必需。 Claude Desktop 扩展(
.mcpb)使用uvx pynet-mcp-bridge启动服务,因此必须安装uv并将其添加到PATH中。使用winget install astral-sh.uv安装。没有uv,扩展将无法启动。 - Git → git-scm.com — VS Code 扩展(Claude Code、Cline、Roo Code)正常运行所必需。
- 对于 Cline / Roo Code:VS Code → code.visualstudio.com
🔧 选项 B — 手动安装
1. 安装软件包:
uv tool install pynet-mcp-bridge
仅使用 uv — 不要使用 pip 安装。通过 pip 安装的副本会落在与 pynet-bridge 启动器不同的解释器中,因此升级和修复会悄无声息地错过实际运行所用的环境。
2. 配置 Claude Desktop:
将以下内容添加到 claude_desktop_config.json:
- 标准版:
%APPDATA%\Claude\claude_desktop_config.json - Microsoft Store 版:
%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\claude_desktop_config.json
{
"mcpServers": {
"pynet-bridge": {
"command": "pynet-bridge",
"args": []
}
}
}
3. 配置 Claude Code(VS Code 扩展):
添加到 %USERPROFILE%\.claude.json:
{
"mcpServers": {
"pynet-bridge": {
"type": "stdio",
"command": "pynet-bridge",
"args": []
}
}
}
4. 配置 Cline:
添加到 %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json:
{
"mcpServers": {
"pynet-bridge": {
"type": "stdio",
"command": "pynet-bridge",
"args": []
}
}
}
5. 配置 Roo Code:
添加到 %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json:
{
"mcpServers": {
"pynet-bridge": {
"type": "stdio",
"command": "pynet-bridge",
"args": []
}
}
}
6. 配置 Codex CLI:
添加到 %USERPROFILE%\.codex\config.toml:
[mcp_servers.pynet-bridge]
command = "C:/Users/<user>/.local/bin/pynet-bridge.exe"
args = []
🛠️ 可用的 MCP 工具
这些工具可让 AI 全面控制 PyNet 环境,涵盖 UI 创建、脚本执行和系统监控。 连接后,AI 即可使用完整的 PyNet 工具套件:
🧠 向 AI 提供的核心功能
🔍 系统与连接
- list_active_instances:扫描系统,查找具有活动 PyNet 连接的 Autodesk 运行进程。
- check_plugin_status:通过握手 ping 检查插件监听器是否有响应。
🏗️ 模块(选项卡)管理
- get_pynet_ui_layout:获取完整的 UI 结构(ButtonsModules 和 ScriptButtons)。
- create_pynet_module:在 Ribbon 中创建新的自定义选项卡(ButtonsModule)。
- delete_pynet_module:永久删除模块及其所有内容。
🔘 按钮管理
- get_buttons_data:列出指定模块 ID 下的所有脚本按钮。
- deploy_script_button:在指定模块中安装新的 ScriptButton(名称、脚本、图标、工具提示)。
- update_script_button:更新现有 ScriptButton 的元数据,或将其移至其他模块。
- delete_script_button:根据 ID 从模块中永久移除 ScriptButton。
💻 执行与控制台控制
- send_command:在 PyNet 引擎中直接执行脚本(目标 PID、脚本名称、内容)。
- get_output_window_status:检查输出窗口当前是否可用或可见。
- configure_output_window:切换 PyNet 日志/输出窗口的可见性。
🧊 BIM 查看器控制(VS Code)
控制在 VS Code 中打开的 PyNet BIM 查看器。从已加载的 .pnt 软件包中读取碰撞数据,并通过本地(127.0.0.1)连接控制 3D 视图——数据不会离开你的机器。
- viewer_status:报告 PyNet BIM 查看器是否已打开(端口、软件包、数据目录)。
- viewer_list_clashes:读取已加载软件包的
clashes.json,并返回每处碰撞及其pnt_id标识符。 - viewer_load_package:将
.pnt加载到已打开的查看器中,推送模型并返回摘要。 - viewer_highlight_clash:根据
pnt_id高亮一对碰撞元素(元素 A 为红色,元素 B 为绿色)。 - viewer_fit:调整相机视角,使其适配查看器中的所有模型。
- viewer_clear:清除查看器中的高亮和幽灵效果。
💡 使用示例
PyNet Bridge 连接后,你可以向 AI 客户端提供以下真实场景提示词。
示例 1 — 发现正在运行的模型并查询(只读)
提示词:“连接到我已打开的 Navisworks 模型,并告诉我当前选中项有多少个。”
AI 会调用 list_active_instances 查找正在运行的 Navisworks 进程(例如 Navisworks (PID 12345)),然后调用 send_command,运行一段读取当前文档选区的简短 Python 脚本。**预期输出:**类似 Current selection contains 42 items. 的消息。
示例 2 — 生成碰撞检测摘要
提示词:“汇总已打开模型中的碰撞测试结果,并将数量导出为表格。”
AI 会调用 list_active_instances,然后通过 send_command 运行一段脚本,使用列入白名单的 Autodesk.Navisworks.Clash 程序集遍历 DocumentClash 结果,并返回每项测试的数量。**预期输出:**类似 Test 'Structure vs MEP': 17 active, 3 resolved 的表格。
示例 3 — 即时创建自定义功能区工具
提示词:“创建一个名为 'QA' 的新功能区选项卡,并添加一个用于运行我的隐藏空图层脚本的按钮。”
AI 会调用 create_pynet_module(返回新的模块 ID),然后调用 deploy_script_button,并提供按钮名称、脚本路径、图标和工具提示。预期输出:Button 'Hide Empty Layers' deployed to module QA.——按钮会立即显示在 Autodesk 功能区中。
ℹ️ 通过
send_command/send_command_by_path发送的每个脚本,都会先经过内置静态分析器验证(参见安全 AI 执行)。违反导入/调用白名单的脚本会在到达 Autodesk 之前被拒绝。
🛡️ 安全 AI 执行
PyNet Bridge 内置了验证层,可确保所有 AI 生成的脚本在执行前都安全且受控。
✔ 防止不安全操作
✔ 阻止未经授权的系统访问
✔ 确保与 BIM 模型的交互受到控制
AI 依然强大,但会在安全边界内运行
从 v1.1.1 开始,MCP 服务内置了静态分析器,会在每个脚本到达宿主应用程序之前进行验证。所有脚本都会在桥接层进行解析和检查——被拒绝的脚本绝不会离开 MCP 服务。
允许的 CLR 程序集
只能通过 clr.AddReference 引用以下 .NET 程序集:
- 通用:
System、System.Windows.Forms、System.Drawing、System.Collections.Generic - Navisworks:
Autodesk.Navisworks.Api、.ComApi、.Interop.ComApi、.Clash - Revit:
RevitAPI、RevitAPIUI - AutoCAD / Civil 3D / Map 3D:
AcMgd、AcCoreMgd、AcDbMgd、AecBaseMgd、AecPropDataMgd、AeccDbMgd、ManagedMapApi - Rhino:
RhinoCommon、Rhino.UI、Eto - Tekla Structures:
Tekla.Structures、.Model、.Drawing、.Datatype、.Dialog、.Catalogs、.Plugins - RIB Presto: 无需引用 — 脚本通过
__presto__作用域变量(COM)驱动 Presto - PyNet 插件:
Raen.Core.Pynet.*、Raen.{Product}.Pynet.*(任意版本 — 例如Raen.Core.Pynet.Resources、Raen.Navisworks.Pynet.2024、Raen.Civil3D.Pynet.2026、Raen.Rhino.Pynet.8、Raen.Tekla.Pynet.2026、Raen.Presto.Pynet)
允许的 Python 导入
clr、sys、json、re、time、datetime、pathlib、typing、threading、collections、xml、math、pandas、plotly、matplotlib、dash、webbrowser、psutil、functools、openpyxl、uuid、zipfile、io、mimetypes、difflib、csv、ifcopenshell、numpy、shapely、qgis、processing、pypdf、docx、rhinoscriptsyntax、scriptcontext
允许的 Python 子模块
部分模块仅允许导入指定子模块,以阻止访问存在风险的同级模块:
| 允许 | 禁止 | 原因 |
|---|---|---|
http.server | http.client、http.cookiejar | 允许本地 HTTP 服务,阻止向外发送请求 |
禁止的 Python 导入
os、subprocess、shutil、socket、ctypes、pickle、importlib、urllib、signal、multiprocessing、tempfile、glob、inspect、code、codeop
禁止的调用
eval、exec、compile、__import__、getattr、setattr、delattr、globals、locals、vars、breakpoint、open
禁止的属性访问
__builtins__、__subclasses__、__globals__、__code__
任何违反这些规则的脚本都会立即被拒绝,并显示具体错误信息,且绝不会发送给插件。
📂 项目结构
- pynet_mcp/:核心 MCP 服务逻辑(FastMCP)。
- pyproject.toml:软件包配置和依赖管理。
📥 入门指南
几分钟内即可开始构建自主 BIM 工作流。
安装桥接程序,连接 AI 客户端,并将自然语言转化为模型中的实际操作。
❓ 常见问题
对安装、配置或使用有疑问?请查看完整的常见问题页面:
🔗 此 MCP 如何融入生态系统
此 MCP 属于一个模块化系统,旨在通过桌面 BIM 工具实现 AI 驱动的 BIM 自动化。
此仓库旨在与以下组件协同工作:
- PyNet Platform → 通过 Python.NET 在 Navisworks、Revit、Civil 3D、Rhino、Tekla Structures 和 RIB Presto 中执行脚本
- PyNet Library → 为 AI 提供 Python 脚本库作为上下文
这些组件共同实现:
自然语言 → AI → Python 脚本 → PyNet → 宿主应用程序 → BIM 操作
| 组件 | 仓库 | 用途 |
|---|---|---|
| PyNet Platform | PyNet | Navisworks、Revit、Civil 3D、Rhino、Tekla Structures 和 RIB Presto 插件 — 托管 Python.NET 引擎 |
| PyNet Bridge (MCP) | 此仓库 | MCP 服务 — 将 AI 模型连接到 PyNET,并包含安全脚本验证 |
| PyNet Library | PyNetLibrary | 脚本参考库和 AI 上下文 |
🔒 隐私政策
PyNet Bridge 完全在您的本地计算机上运行。它不会收集、存储或传输任何个人数据、遥测数据或分析数据。
- **不收集数据:**该服务不会向 RAEN Digital Tools 或任何第三方发送任何信息。
- **仅限本地通信:**MCP 服务与运行在 Autodesk 内部的 PyNet 插件之间的所有通信都在您的计算机上进行。没有网络套接字,没有远程端点——不会有任何信息离开您的计算机。
- 您的脚本和模型数据会保留在您的计算机上,且只由您连接的 AI 客户端处理。
完整隐私政策:https://privacy.raendt.com/
🆘 支持
- 问题 / 错误报告:GitHub 问题
- 常见问题:PyNet 常见问题
- **联系方式:**[email protected]
🖥️ 平台支持
PyNet Bridge 仅支持 Windows。它依赖 Windows 专属的本地通信设施,以及桌面 BIM 应用程序(Navisworks、Revit、Civil 3D、Rhino、Tekla Structures、RIB Presto),这些都是 Windows 产品。不支持 macOS 和 Linux。
📄 许可证
本项目采用 MIT 许可证授权。
mcp-name: io.github.RAEN-DT/pynet-mcp-bridge

© 2026 RAEN Digital Tools · 保留所有权利。
本作品已在马德里自治区知识产权登记处登记。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。