🤖 BIM人工智能代理——Revit×Claude(MCP)
______________________________________________________________________
🇬🇧 英文文档
📌 项目概述
BIM AI Agent是Generative AI(Claude)和Autodesk Revit之间专业且安全的桥梁。
该项目演示了人工智能如何在不直接控制Revit或违反Revit API约束的情况下,对BIM模型进行分析、查询和建议操作。
核心思想: AI准备命令,Revit安全执行。
该系统支持:
询问有关Revit模型的自然语言问题(查询)
在Revit中触发受控和用户批准的更改(操作)
此体系结构完全本地、稳定且符合Revit‑API,并有意避免:
Revit中的背景线程
Revit进程中的套接字侦听器或实时服务器
直接执行AI到Revit
所有Revit操作都只能通过pyRevit执行,需要明确的用户交互,以确保安全、透明并符合Revit最佳实践。
______________________________________________________________________
🎯 项目目标
弥合两者之间的差距 生成式人工智能 和 BIM软件 通过启用:
- Revit模型上的自然语言查询
- Revit中受控、用户批准的操作
- 实时、可演示的AI——BIM工作流程
此实现满足:
✅ 查询(例如计数墙)
✅ 操作(例如重命名视图)
✅ 现场演示功能
✅ Revit API安全
______________________________________________________________________
🧠 系统架构
Claude Desktop (LLM)
│
▼
MCP Server (mcp_server.py)
│
▼
Flask API (simple-flask-server.py)
│ (writes command.json)
▼
User clicks AI_Bridge button
│
▼
Revit + pyRevit (AI_Bridge.pushbutton)
│ (executes Revit API)
▼
result.json
│
▼
Claude reads final result为什么是这种架构?
- Revit API 必须在UI线程上运行
- 后台监听器和套接字不安全
- 需要用户触发执行
- 该设计严格遵循 Revit API最佳实践 以及专业的BIM工作流程。
______________________________________________________________________
🧩 系统组件
1.️⃣ 克劳德(AI)
- 解释自然语言请求
- 决定 *做什么*
- 仅调用MCP工具
- ❌ 无法直接访问Revit
2.️⃣ MCP服务器
- 向Claude公开工具
- 处理AI到后端的通信
3.️⃣ Flask服务器
- 轻量级本地后端
- 写
command.json - 阅读
result.json - 包含 无Revit逻辑
4.️⃣ 基于文件的IPC
command.json: AI → Revit说明result.json:Revit→ AI执行结果
5.️⃣ pyRevit大桥
- 在Revit中运行
- 读取命令
- 使用Revit API事务执行它们
- 写入结果
- 由用户手动触发
6.️⃣ Autodesk Revit
- 唯一允许修改模型的组件
- 所有更改都发生在安全事务中
______________________________________________________________________
🛠️ 可用命令
以下命令通过MCP服务器公开,LLM可以调用这些命令与Autodesk Revit安全交互。 所有修改命令都遵循人在循环中的方法,在执行之前需要在Revit中进行明确的用户确认。
📊 信息和查询
这些命令不会修改Revit模型,可以随时安全运行。
ping 检查MCP服务器是否正在运行且可访问。 可用于验证AI-Revit桥是否处于活动状态。
get_wall_count 返回当前Revit项目中墙图元的总数。
ai_suggestions 请求对模型进行基于AI的分析。 用户确认后,在Revit中执行分析,并可能返回设计观察结果或潜在的改进说明。 (空结果表示没有检测到问题,或者模型太简单而无法分析。)
get_last_result 检索最近执行的操作的结果。 此命令用于程序化反馈和验证,而不是直接用户交互。
✏️ 模型修改
这些命令不会立即执行。 每个请求都会排队,需要用户按下Revit中的AI_Bridge按钮并批准该操作。
rename_views 通过用新名称前缀替换现有名称前缀来重命名Revit视图。 这允许以可控和可预测的方式批量重命名视图。
例子: 重命名以Level开头的视图→ 电弧水平
flip_doors 安全地尝试翻转门图元的方向。 系统检查Revit API功能,并跳过无法翻转的门,以避免出现错误或意外行为。
modify_parameter 修改给定元素的特定参数。 要求:
元素ID
参数名称
新值
只有在Revit中用户确认后,才会执行该操作。
↩️ 还原与恢复
revert_last 在支持的情况下,还原上次成功的修改操作。 这为安全实验提供了一种基本的回滚机制。
🔐 安全模型
AI从不直接修改Revit模型
所有变更如下:
- AI要求
- 排队过桥
- 用户在Revit中明确审查和确认
- 这种设计优先考虑透明度、控制和模型完整性,而不是盲目自动化。
______________________________________________________________________
🔐 设计和安全理念
- 用户在循环中执行
- 明确批准每一项行动
- 没有隐藏的自动化
这种方法反映了Git拉取请求或CI/CD审批等专业工作流程。
______________________________________________________________________
📁 项目结构
BIM_AI_Agent/
│
├── command.json # Temporary command file (created at runtime)
├── result.json # Result written by Revit execution
├── ai_server/
│ ├── command_writer.py # Writes AI commands to command.json
│ ├── simple-flask-server.py # Flask API (AI → file bridge)
│ └── mcp_server.py # MCP server used by Claude Desktop
└── revit/
└── KaydaTools.extension/
└── MyScripts.tab/
├── Utils.panel/
├── CountWalls.pushbutton/
│ └── script.py
├── AI_Bridge.pushbutton/
└── script.py______________________________________________________________________
⚙️ 需求
软件
- Autodesk Revit 2025
- pyRevit(已安装并加载)
- Python 3.10+(适用于Flask+MCP)
- 克劳德桌面(启用MCP)
Python包
pip install flask requests mcp______________________________________________________________________
🚀 如何跑步
- 启动Flask服务器
cd BIM_AI_Agent\ai_server
python simple-flask-server.py此服务器: - 接收AI请求 - 写 command.json
- 启动MCP服务器
cd BIM_AI_Agent\ai_server
python mcp_server.py⚠️ 做 不 在此终端中键入任何内容。 MCP服务器由Claude驱动,而不是手动驱动。
- 打开克劳德桌面(启用MCP)
- 启用MCP工具 - 确保MCP状态= 连接的
- 打开Revit并重新加载pyRevit
- 打开您的项目 - 重新加载pyRevit(一次) - 请求克劳德采取行动 - 按 桥接按钮 在Revit中 - 请克劳德阅读最后的结果
______________________________________________________________________
🧠 关键要点
人工智能是一个智能助手,而不是决策者。 执行权限始终保留在Revit内部,并处于人为控制之下。
💡 备注
⚠️ 此项目使用本地项目根路径。 请更新Revit桥脚本中的PROJECT_ROOT 以匹配您的本地目录结构。
______________________________________________________________________
📺 演示
🎥 LinkedIn上有一段简短的演示视频(见帖子)。
______________________________________________________________________
AR阿拉伯语解释
项目理念
项目 BIM人工智能代理 连接 人工智能(Claude) 和 Revit计划 以安全和专业的方式,AI手无需直接修改型号。
基本思想:
- AI了解用户请求
- 将需求转化为有组织的命令
- 事情写在一个文件中。
command.json - 仅限Revit 用户同意后执行修改的人员
核心思想: 建议使用AI,Revit可以安全执行。
______________________________________________________________________
设计是什么?
- Revit API需要在UI Thread上运行
- 任何后台操作都是危险和不安全的
- 实施过程中需要明确的人为干预
他直接遵守Revit的专业规则。
______________________________________________________________________
🧩系统组件
- 克劳德: 理解并建议
- 烧瓶+MCP: 中间沟通层
- JSON文件: 安全的沟通方式
- Bridge"1575; 160;版本: 真正的实施
______________________________________________________________________
安全哲学
- 无自动执行
- 未经用户同意不得修改
- 始终控制工程师手中
______________________________________________________________________
·适当用途
- 计算元素
- 组织视图名称
- 型号质量检查
- QA/QC报告
______________________________________________________________________
🚫不允许的使用
- 自动删除项目
- 直接修改Geometry
- 模型中的完全AI控制
______________________________________________________________________
🏁结论
AI是一个智能助手,不能替代工程师。 在用户同意的情况下,真正的执行是在Revit内部进行的。
______________________________________________________________________
👤 作者
齐亚德·阿穆尔说 建筑•前端•BIM自动化•AI集成
作为学术BIM课程和独立实验的一部分而建造。
📄 许可证
仅供教育/研究使用
