Revit MCP服务器

通过模型上下文协议(MCP)连接AI助手与Autodesk Revit,实现实时读取、创建、修改和删除Revit项目中的元素。

  • by LuDattilo
  • C#
  • 本地部署
  • 79 星标
  • 更新于
在 GitHub 查看 LuDattilo/revit-mcp-server

使用说明

revit的mcp服务器

通过模型上下文协议将AI助手连接到Autodesk Revit。


revit的mcp服务器使Claude、Cline和其他mcp兼容工具等AI客户端能够实时读取、创建、修改和删除revit项目中的元素。它公开了138个工具,涵盖项目信息、模型分析、元素创建、批处理操作、数据导出等。

[!注意] 这是原版的叉子 revit mcp 项目中添加了额外的工具和功能改进。

主要特点

  • 124个MCP工具 --项目信息、模型运行状况、冲突检测、元素CRUD、批处理操作、数据导出(PDF/DWG/IFC/CSV)
  • 修订版2023、2024、2025、2026、2027 --在所有五个版本上进行了全面测试
  • 独立于语言 --使用BuiltInCategory分辨率与任何Revit UI语言(英语、意大利语、法语、德语等)一起使用
  • 内置Claude聊天面板 -Revit内部的可固定面板,可直接访问AI(Anthropic API,启用扩展思维)
  • 实时执行 --AI请求通过TCP/JSON-RPC 2.0在活动模型上立即执行
  • 可扩展命令集 --在不修改插件核心的情况下添加新命令

建筑

flowchart LR
    Client["MCP Client<br/>(Claude, Cline, etc.)"]
    Server["MCP Server<br/><code>server/</code>"]
    Plugin["Revit Plugin<br/><code>plugin/</code>"]
    CommandSet["Command Set<br/><code>commandset/</code>"]
    Revit["Revit API"]

    Client <-->|stdio| Server
    Server <-->|TCP :8080| Plugin
    Plugin -->|loads| CommandSet
    CommandSet -->|executes| Revit
组件 语言 角色
MCP服务器 (server/) TypeScript 通过TCP将AI工具调用转换为JSON-RPC消息
Revit插件 (plugin/) C# 在Revit中运行,继续收听 localhost:8080,发送命令
命令集 (commandset/) C# 实施Revit API操作,返回结构化结果

需求

使用

要求 详细信息
Node.js 18+(适用于MCP服务器)
Autodesk Revit 2023年、2024年、2025年、2026年或2027年
操作系统 Windows 10/11(Revit仅适用于Windows)
无烟煤API键 (可选) 仅内置聊天面板需要。通过设置 %USERPROFILE%\.claude\api_key.txt 或env ANTHROPIC_API_KEY

从源代码构建

要求 详细信息
Visual Studio 2022 和。NET桌面开发工作负载
.NET Framework 4.8 SDK 对于Revit 2023-2024版本
.NET 8 SDK 适用于Revit 2025-2026版本
.NET 10 SDK (预览) 对于Revit 2027版本
Node.js 18+ 对于MCP服务器
Revit API部件 与Revit一起安装(通过NuGet自动引用)

快速开始

1.安装Revit插件

选项A:自动安装(推荐)

打开PowerShell并粘贴以下命令:

powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/LuDattilo/revit-mcp-server/main/scripts/install.ps1 | iex"

脚本:

  • 自动检测已安装的Revit版本
  • 从GitHub下载正确的预构建版本
  • 提取到正确的文件夹并解除阻止所有DLL
  • 验证是否存在所有依赖项
  • 检查Node.js(MCP服务器需要)并提供安装
  • 配置Claude Desktop(如果已安装)
# Install for a specific Revit version
.\install.ps1 -RevitVersion 2025

# Install a specific release
.\install.ps1 -Tag v1.2.0

# Uninstall
.\install.ps1 -Uninstall

选项B:手动安装

[!重要] 从下载预构建的ZIP 发布 页面。 不要克隆存储库或复制源代码——源代码包含 .cs 未编译的文件 .dll 文件夹。如果没有编译的二进制文件,该插件将无法工作。

将ZIP解压缩到:

%AppData%\Autodesk\Revit\Addins\<your Revit version>\

要快速打开此文件夹,请按 Win+R 类型:

%AppData%\Autodesk\Revit\Addins

提取文件夹后 必须 看起来像这样:

Addins/2025/
├── mcp-servers-for-revit.addin          <-- manifest file (required)
└── revit_mcp_plugin/                    <-- subfolder (required)
    ├── RevitMCPPlugin.dll               <-- main plugin (required)
    ├── RevitMCPSDK.dll                  <-- SDK dependency (required)
    ├── Newtonsoft.Json.dll              <-- JSON dependency (required)
    ├── tool_schemas.json
    └── Commands/
        ├── commandRegistry.json
        └── RevitMCPCommandSet/
            ├── command.json
            └── 2025/
                ├── RevitMCPCommandSet.dll
                └── ...

[!警告] 如果 RevitMCPPlugin.dll 丢失或 revit_mcp_plugin/ 子文件夹不存在,插件将无法加载。检查您是否提取了 内容 ZIP文件,而不是ZIP文件本身。

2.配置MCP服务器

克劳德代码

claude mcp add mcp-server-for-revit -- npx -y mcp-server-for-revit

克劳德桌面版

克劳德桌面版→ 设置→ 开发者→ 编辑配置→ claude_desktop_config.json:

{
    "mcpServers": {
        "mcp-server-for-revit": {
            "command": "npx",
            "args": ["-y", "mcp-server-for-revit"]
        }
    }
}

3.启动Revit

插件会自动加载。在 加载项 您应该看到的功能区选项卡 三个按钮 在“Revit MCP插件”面板中:

按钮 功能
Revit MCP开关 启动/停止TCP服务器
MCP面板 显示/隐藏内置聊天面板
设置 插件设置

点击 “Revit MCP开关” 启动TCP服务器。当状态指示灯变为绿色时,连接处于活动状态。

[!提示] 如果你只看到 开关 按钮,但不是 MCP面板 或 设置,插件未正确加载。看 故障排除 在......下面

支持的Revit版本

版本 。NET目标 状态 注释
修订版2023 .NET Framework 4.8 全面测试 意大利本地化验证
修订版2024 .NET Framework 4.8 内置且兼容 与R23代码库相同
修订版2025 .NET 8 完全测试 结构模型(斯诺登大厦)
修订版2026 .NET 8 全面测试 主要开发目标
2027年修订版 .NET 10 完全测试 。需要NET 10 SDK(预览版)

所有工具都适用于所有版本。命令集使用编译时常量(REVIT2023, REVIT2024等等)以处理版本之间的API差异(例如。, ElementId 是 long 在R24+中, int 在R23中)。

支持的工具(124)

项目和型号信息

工具 说明
get_project_info 项目元数据、级别、阶段、链接、工作集
get_current_view_info 活动视图类型、名称、比例、详细程度
get_current_view_elements 按类别筛选的活动视图中的元素
get_selected_elements 当前选定的元素
get_available_family_types 按类别筛选的族类型
get_element_parameters 元素的所有实例和类型参数
get_warnings 模型警告和错误
get_phases 相位和相位滤波器
get_worksets 工作集信息和状态
get_shared_parameters 项目参数绑定到类别
manage_links 列出、重新加载或卸载链接的Revit模型

模型分析与审计

工具 说明
ai_element_filter 按类别、类型、可见性、边界框查询智能元素
analyze_model_statistics 按类别、类型、族和级别进行元素计数
check_model_health 健康评分(0-100),等级(A-F),可操作建议
clash_detection 元素集之间的几何交集检测
measure_between_elements 距离测量(中心到中心、最近点、边界框)
get_elements_in_spatial_volume 在三维边界区域内查找元素

材料和数量

工具 说明
get_materials 列出按类别或名称筛选的材料
get_material_properties 物理、结构和热性能
get_material_quantities 物料统计:面积、体积、元素计数

元素创建

工具 说明
create_line_based_element 墙、梁、管道(起点/终点)
create_point_based_element 门、窗、家具(插入点)
create_surface_based_element 地板、天花板、屋顶(边界)
create_floor 从边界点或房间边界开始的楼层
create_room 指定位置的房间
create_grid 具有自动间距的网格系统
create_level 指定标高处的标高
create_structural_framing_system 边界内的梁框架系统
create_array 线性或径向元件阵列

元素修改

工具 说明
modify_element 移动、旋转、镜像或复制图元
operate_element 选择、隐藏、隔离、突出显示、删除
change_element_type 批量交换系列类型
set_element_parameters 在元素上写入参数值
set_element_phase 更改元素阶段分配
set_element_workset 更改图元工作集指定
match_element_properties 将参数从源元素复制到目标元素
copy_elements 在视图之间复制元素
delete_element 按ID删除元素
load_family 将族文件(.rfa)载入到项目中

视图和图纸

工具 说明
create_view 创建楼层平面、剖面、立面和三维视图
duplicate_view 重复视图(独立、依赖、带细节)
create_view_filter 创建、应用或列表视图筛选器
apply_view_template 列出、应用或删除视图样板
override_graphics 按元素图形替代(颜色、透明度、线宽)
color_elements 按参数值显示颜色元素
create_sheet 创建带有标题栏的图纸
batch_create_sheets 一次创建多张图纸
place_viewport 将视图放置到图纸上
create_schedule 使用字段、过滤器和排序创建明细表视图
create_revision 列出、创建或添加图纸修订

标注

工具 说明
create_dimensions 元素或点之间的标注
create_text_note 视图中的文字注释
create_filled_region 视图中的填充区域
tag_all_walls 自动标记活动视图中的所有墙
tag_all_rooms 自动标记活动视图中的所有房间

数据导出

工具 说明
export_room_data 所有房间数据(面积、体积、部门、装修)
export_elements_data 带过滤的批量元素数据导出(JSON/CSV)
export_schedule 将明细表导出为CSV/TXT文件
get_schedule_data 阅读日程表内容或列出所有日程表
batch_export 将图纸/视图导出为PDF、DWG或IFC

批量操作和清理

工具 说明
batch_rename 批量重命名视图、图纸、标高、网格、房间
renumber_elements 房间、门、窗的顺序重新编号
sync_csv_parameters 从CSV/AI数据中回写参数值
purge_unused 识别并删除未使用的族、类型、材质
cad_link_cleanup 审核和清理CAD导入和链接
add_shared_parameter 将共享参数添加到类别

高级

工具 说明
send_code_to_revit 在Revit中执行C#代码。变量: document (文件), parameters (对象[])。自动导入:系统,系统。Linq,Autodesk。Revit。DB/UI,系统。收藏。通用。使用 return 发送结果。模式 auto 包裹在交易中, none 手动
store_project_data 将项目元数据存储在本地数据库中
store_room_data 将房间元数据存储在本地数据库中
query_stored_data 查询存储的项目和房间数据
say_hello 显示问候语对话框(连接测试)

内置聊天面板

Revit插件包含一个可固定的聊天面板,该面板可直接连接到Anthropic API。它在Revit中提供了一个Claude聊天界面,AI可以在其中自主执行活动模型上的工具。

  • 模型:Claude Sonnet 4.6,具有扩展思维(1万代币预算)
  • 系统提示:自主模式——Claude直接执行操作,无需不必要的确认
  • 特性:工具执行反馈、思维总结、循环进度、停止/取消、聊天导出(TXT/MD/JSON)

已知限制

限制 详细信息
仅限Windows Revit仅在Windows上运行;不支持macOS/Linux
单一模型 该插件仅对活动文档进行操作;无法访问背景文档
TCP端口8080 插件正在监听 localhost:8080;如果端口被占用,服务器将无法启动
无撤消集成 AI工具执行的操作会创建标准的Revit事务,但不会分组到单个撤消步骤中
send_code_to_revit 如果第三方插件导致程序集冲突(例如,重复的DLL引用),则可能会失败
参数名称已本地化 Revit参数名称取决于UI语言。使用内置类别名称(例如。, OST_Walls)对于类别。命令集会自动解析类别,但参数名称必须与Revit语言匹配
无流媒体 工具结果作为单个响应返回;大型结果(例如,导出数千个元素)可能需要时间
无烟煤API键 内置聊天面板需要一个Anthropic API键。外部MCP客户端(Claude Code、Claude Desktop)使用自己的身份验证

故障排除

仅显示开关按钮(无MCP面板或设置)

原因: 插件安装不正确,通常是因为源代码被复制而不是预构建的版本,或者文件丢失。

修复:

  1. 关闭Revit
  2. 从中删除旧安装 %AppData%\Autodesk\Revit\Addins\<version>\
  3. 从下载正确的ZIP 发布 页
  4. 提取并验证文件夹结构是否与中所示的结构匹配 步骤1
  5. 重新启动Revit

插件未出现在“加载项”选项卡中

  • 核实一下 mcp-servers-for-revit.addin 直接存在于内部 %AppData%\Autodesk\Revit\Addins\<version>\ (不在子文件夹中)
  • 验证ZIP版本是否与您的Revit版本匹配(例如,Revit 2025的Revit2025 ZIP)
  • 检查Revit是否未阻止DLL:在每个DLL上单击鼠标右键 .dll → 属性→ 如果您在底部看到“解锁”,请选中它并单击“确定”

使用Claude Desktop或Claude Code时“连接被拒绝”

  • 确保Revit已打开,MCP开关已打开 开 (绿色指示灯)
  • 检查端口8080是否未被其他应用程序使用: netstat -an | findstr 8080

其他常见问题

问题 解决方案
“找不到元素” 使用验证元素ID get_current_view_elements
“找不到参数” 检查确切名称 get_element_parameters --名称已本地化
“未找到家庭类型” 使用 get_available_family_types 确切名称
Claude Desktop中的“工具不可用” 重新启动Claude Desktop以刷新MCP工具列表
大型操作超时 尝试使用更少的元素或更简单的筛选器

发展

MCP服务器

cd server
npm install
npm run build

服务器将TypeScript编译为 server/build/。在开发过程中,您可以直接使用 npx tsx server/src/index.ts.

Revit插件+命令集

打开 mcp-servers-for-revit.sln 在Visual Studio中。该解决方案包含插件和命令集项目。生成配置目标Revit 2023-2027:

配置 目标 。NET
Debug R23 / Release R23 修订版2023 。NET框架4.8
Debug R24 / Release R24 Revit 2024 。NET框架4.8
Debug R25 / Release R25 Revit 2025。网8。
Debug R26 / Release R26 修订版2026。网8。
Debug R27 / Release R27 修订版2027。网10。

构建解决方案会自动组装完整的可部署布局 plugin/bin/AddIn <year> <config>/ --命令集被复制到插件的 Commands/ 文件夹作为构建的一部分。

测试

测试项目使用 不错的3分。TUnit。Revit 对实时Revit实例运行集成测试。

# Revit 2026
dotnet test -c Debug.R26 -r win-x64 tests/commandset

# Revit 2025
dotnet test -c Debug.R25 -r win-x64 tests/commandset

注: 这 -r win-x64 标志在ARM64计算机上是必需的,因为Revit API部件仅为x64。

项目结构

mcp-servers-for-revit/
├── mcp-servers-for-revit.sln    # Combined solution (plugin + commandset + tests)
├── command.json                 # Command set manifest
├── server/                      # MCP server (TypeScript) - tools exposed to AI clients
│   └── src/tools/               # One .ts file per tool (138 tools)
├── plugin/                      # Revit add-in (C#) - TCP bridge + chat panel
│   └── UI/                      # Dockable chat panel (XAML + code-behind)
├── commandset/                  # Command implementations (C#) - Revit API operations
│   ├── Commands/                # Command registration
│   ├── Services/                # Event handlers (one per tool)
│   └── Utils/                   # CategoryResolver, ProjectUtils, etc.
├── tests/                       # Integration tests (TUnit + live Revit)
├── assets/                      # Images for documentation
├── .github/                     # CI/CD workflows
├── LICENSE
└── README.md

释放

一个 v* 标签驱动整个版本。这 发布工作流程 自动:

  • 为Revit 2023-2027构建Revit插件+命令集
  • 创建GitHub版本 mcp-servers-for-revit-vX.Y.Z-Revit<year>.zip 资产
  • 将MCP服务器发布到npm mcp-server-for-revit
# Bump version, commit, and tag
./scripts/release.ps1 -Version X.Y.Z

# Push to trigger CI
git push origin main --tags

致谢

信用 链接
原始概念 罗曼·扎尔欣 --为Revit创建了第一个MCP服务器(15个工具) 罗曼扎金/雷维特
扩展到80多种工具 revit的mcp服务器 社区 --lisiting01、jmcouffin、huyan1458、bobbyg603、chuongmep等人将该项目扩展到三个repo revit mcp, revit mcp插件, revit mcp命令集
合并回购 喷火 (Bobby Galli)——将三个仓库合并为一个解决方案 用于revit的mcp服务器/mcp服务器用于revit
现任维护人员 LuDattilo --独立于语言的操作,嵌入式Claude聊天面板,PowerShell安装程序 LuDattilo/revit mcp服务器

许可证

该项目发布于 MIT许可证 --看 许可证 全文。

麻省理工学院允许什么

允许 条件
商业用途 是 包括版权声明
修改 是 包括版权声明
分发 是 包括版权声明
私人使用 是 --
分许可 是 包括版权声明

免责

软件按“原样”提供,不提供任何形式的保证。 对于因使用此软件而导致的Revit项目的任何损坏、数据丢失、模型损坏或意外修改,作者和贡献者不承担任何责任。使用风险自负。

重要提示:

  • 此软件在实时Revit模型上执行命令。在使用人工智能驱动的自动化之前,始终处理副本或确保有备份。
  • AI(Claude或其他MCP客户端)可能会误解指令并执行意外操作。在确认生产模型的批量操作之前,审查人工智能生成的操作。
  • 本项目不隶属于Autodesk,股份有限公司,也不受其认可或支持。“Autodesk”和“Revit”是Autodesk,股份有限公司的注册商标。