使用说明
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面板或设置)
原因: 插件安装不正确,通常是因为源代码被复制而不是预构建的版本,或者文件丢失。
修复:
- 关闭Revit
- 从中删除旧安装
%AppData%\Autodesk\Revit\Addins\<version>\ - 从下载正确的ZIP 发布 页
- 提取并验证文件夹结构是否与中所示的结构匹配 步骤1
- 重新启动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,股份有限公司的注册商标。
