Back to MCP directory
publicPublicdnsLocal runtime

autodesk-revit-mcp-server

这是一个用于Autodesk Revit的MCP服务器,通过自然语言控制实现AI代理与Revit软件的交互,提供超过100个API工具,支持文档管理、模型创建、视图操作等功能。

article

README

🚀 Revit MCP 服务器

Revit MCP 服务器是一款用于 Autodesk Revit 的模型上下文协议服务器,它能让 AI 代理通过自然语言控制 Autodesk Revit,还可与 Claude Desktop、Microsoft Copilot 以及自定义 MCP 客户端集成。

🚀 快速开始

前提条件

  • Windows 10/11 操作系统
  • Autodesk Revit 2024 或 2025 版本
  • Python 3.11 及以上版本
  • .NET Framework 4.8

安装步骤

# 克隆仓库
git clone https://github.com/Sam-AEC/Autodesk-Revit-MCP-Server.git
cd Autodesk-Revit-MCP-Server

# 构建 Revit 插件
.\scripts\build-addin.ps1 -RevitVersion 2024

# 安装 Python 包
pip install -e packages/mcp-server-revit

配置 Claude Desktop

编辑 %APPDATA%\Claude\claude_desktop_config.json 文件:

{
  "mcpServers": {
    "revit": {
      "command": "python",
      "args": ["-m", "revit_mcp_server.mcp_server"],
      "env": {
        "MCP_REVIT_BRIDGE_URL": "http://127.0.0.1:3000",
        "MCP_REVIT_MODE": "bridge"
      }
    }
  }
}

验证安装

启动 Revit,然后执行以下命令:

curl http://localhost:3000/health

预期响应如下:

{
  "status": "healthy",
  "revit_version": "2024"
}

✨ 主要特性

  • 拥有 100 多个 Revit API 工具,涵盖几何、视图、图纸、族、MEP、结构等方面。
  • 本地主机 HTTP 桥接,响应时间低于 1 秒。
  • 采用线程安全的 ExternalEvent 架构。
  • 具备高级反射 API,可无限制访问 Revit。
  • 功能全面,适用于生产环境。

演示

Revit MCP 演示

🔧 技术细节

架构

┌─────────────────────────────────┐
│ AI 客户端 (Claude/Copilot)     │
└───────────────┬─────────────────┘
                │ MCP 协议
┌───────────────▼─────────────────┐
│ MCP 服务器 (Python)             │
│ - 工具注册表                   │
│ - 安全/审计                    │
└───────────────┬─────────────────┘
                │ HTTP :3000
┌───────────────▼─────────────────┐
│ Revit 桥接插件 (C#)            │
│ - HTTP 服务器                  │
│ - 外部事件处理程序             │
└───────────────┬─────────────────┘
                │ Revit API
┌───────────────▼─────────────────┐
│ Autodesk Revit 2024/2025        │
└─────────────────────────────────┘
  • 线程模型:HTTP 请求通过 ExternalEvent 排队并在 Revit 的主线程上执行,以确保线程安全。
  • 桥接状态:桥接作为本地主机 HTTP 服务器在端口 3000 上运行,提供健康检查和工具执行端点。

可用工具

文档管理

  • revit.create_new_document - 创建空白项目
  • revit.open_document - 打开 RVT/RFA 文件
  • revit.save_document - 保存活动文档
  • revit.close_document - 关闭文档
  • revit.get_document_info - 获取项目元数据

标高与轴网

  • revit.create_level - 在指定标高创建标高
  • revit.list_levels - 列出所有标高
  • revit.create_grid - 创建轴网线

模型元素

  • revit.create_wall - 根据曲线创建墙体
  • revit.create_floor - 根据轮廓创建楼板
  • revit.create_roof - 根据轮廓创建屋顶
  • revit.create_column - 创建结构柱
  • revit.create_beam - 创建结构梁
  • revit.create_foundation - 创建基础元素
  • revit.create_room - 创建房间边界

MEP 系统

  • revit.create_duct - 创建 HVAC 风管
  • revit.create_pipe - 创建给排水管道
  • revit.create_cable_tray - 创建电缆桥架
  • revit.create_conduit - 创建电气导管
  • revit.get_mep_systems - 列出 MEP 系统

族与组件

  • revit.place_family_instance - 放置族实例
  • revit.place_door - 在墙体中放置门
  • revit.place_window - 在墙体中放置窗
  • revit.list_families - 列出已加载的族
  • revit.edit_family - 编辑族文档

元素操作

  • revit.delete_element - 删除元素
  • revit.copy_element - 平移复制元素
  • revit.move_element - 按向量移动元素
  • revit.rotate_element - 绕轴旋转元素
  • revit.mirror_element - 跨平面镜像元素
  • revit.pin_element - 固定元素位置
  • revit.unpin_element - 解除元素固定

参数操作

  • revit.get_element_parameters - 读取元素参数
  • revit.set_parameter_value - 设置参数值
  • revit.get_parameter_value - 读取单个参数
  • revit.batch_set_parameters - 批量更新参数
  • revit.get_type_parameters - 获取类型参数
  • revit.set_type_parameter - 设置类型参数

视图操作

  • revit.create_3d_view - 创建等轴测 3D 视图
  • revit.create_section_view - 创建剖面视图
  • revit.create_floor_plan_view - 创建楼层平面视图
  • revit.duplicate_view - 复制视图
  • revit.apply_view_template - 应用视图模板
  • revit.get_view_templates - 列出视图模板
  • revit.list_views - 列出所有视图

图纸与文档

  • revit.create_sheet - 创建带有标题栏的图纸
  • revit.place_viewport_on_sheet - 在图纸上放置视口
  • revit.list_sheets - 列出所有图纸
  • revit.delete_sheet - 删除图纸
  • revit.duplicate_sheet - 复制图纸
  • revit.get_sheet_info - 获取图纸信息
  • revit.list_titleblocks - 列出标题栏类型
  • revit.populate_titleblock - 填充标题栏参数
  • revit.renumber_sheets - 重新编号图纸
  • revit.batch_create_sheets_from_csv - 从 CSV 文件批量创建图纸

注释操作

  • revit.create_tag - 创建元素标签
  • revit.create_dimension - 创建尺寸标注
  • revit.create_text_note - 创建文本注释
  • revit.create_text_type - 创建文本类型
  • revit.tag_all_in_view - 在视图中标记所有元素
  • revit.create_revision_cloud - 创建修订云

选择与查询

  • revit.get_selection - 获取当前选择
  • revit.set_selection - 设置元素选择
  • revit.list_elements_by_category - 按类别查询元素
  • revit.get_element_type - 获取元素类型
  • revit.get_element_bounding_box - 获取元素边界框
  • revit.get_categories - 列出所有类别

组与链接

  • revit.create_group - 创建模型组
  • revit.ungroup - 解组元素
  • revit.convert_to_group - 转换为组
  • revit.get_group_members - 获取组成员
  • revit.get_link_instances - 列出链接实例
  • revit.get_rvt_links - 列出 Revit 链接

进度表与数据

  • revit.create_schedule - 创建进度表视图
  • revit.get_schedule_data - 提取进度表数据
  • revit.export_schedules - 将进度表导出为 CSV 文件
  • revit.calculate_material_quantities - 计算材料数量

导出操作

  • revit.export_pdf_by_sheet_set - 导出为 PDF 文件
  • revit.export_dwg_by_view - 导出为 DWG 文件
  • revit.export_ifc_with_settings - 导出为 IFC 文件
  • revit.export_navisworks - 导出为 Navisworks 文件
  • revit.export_image - 将视图导出为图像
  • revit.render_3d_view - 渲染 3D 视图

项目信息

  • revit.get_phases - 列出项目阶段
  • revit.get_phase_filters - 列出阶段过滤器
  • revit.get_design_options - 列出设计选项
  • revit.get_worksets - 列出工作集
  • revit.get_warnings - 获取模型警告
  • revit.get_project_location - 获取项目位置

工作共享

  • revit.sync_to_central - 与中心文件同步
  • revit.relinquish_all - 释放所有元素

材质与渲染

  • revit.create_material - 创建材质
  • revit.set_element_material - 分配材质
  • revit.get_render_settings - 获取渲染设置

分析与验证

  • revit.check_clashes - 运行碰撞检测
  • revit.get_room_boundary - 获取房间边界

高级功能

  • revit.invoke_method - 通用 Revit API 方法调用
  • revit.reflect_get - 通过反射获取属性
  • revit.reflect_set - 通过反射设置属性

项目参数

  • revit.list_shared_parameters - 列出共享参数
  • revit.create_shared_parameter - 创建共享参数
  • revit.list_project_parameters - 列出项目参数
  • revit.create_project_parameter - 创建项目参数

修订

  • revit.get_revision_sequences - 获取修订序列

总计:100 多个工具 • 完整 API 参考docs/tools.md

开发状态

本服务器正在积极维护并持续改进。有关最新更新和已知限制,请参阅:

📄 许可证

本项目采用 MIT 许可证,版权所有 (c) 2025。

📚 详细文档

🔒 安全说明

  • 默认设置:仅本地主机 (127.0.0.1:3000) 可访问,无需身份验证。
  • 企业级设置:支持可选的 HTTPS、OAuth2 (Entra ID)、审计日志和速率限制。

详细信息请参阅 docs/security.md

📁 项目结构

Autodesk-Revit-MCP-Server/
├── packages/
│   ├── revit-bridge-addin/       # C# Revit 插件
│   │   └── src/Bridge/
│   │       ├── App.cs            # IExternalApplication
│   │       ├── BridgeServer.cs   # HTTP 服务器
│   │       └── BridgeCommandFactory.cs
│   └── mcp-server-revit/         # Python MCP 服务器
│       ├── src/revit_mcp_server/
│       │   ├── mcp_server.py     # MCP 协议
│       │   ├── bridge/client.py  # HTTP 客户端
│       │   └── tools/            # 工具处理程序
│       └── tests/
├── scripts/
│   ├── build-addin.ps1           # 构建 C# DLL
│   └── install.ps1               # 部署到 Revit
├── docs/
│   ├── tools.md                  # API 参考
│   ├── architecture.md           # 系统设计
│   └── security.md               # 安全模型
└── README.md

🔗 相关链接

**[⬆ 返回顶部](#revit-mcp-server)**
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client