Revit模型桥接器

Revit MCP Bridge 是一个连接AI助手(如Claude、Gemini CLI)与Autodesk Revit的工具,通过模型上下文协议实现直接查询和验证Revit结构模型。

  • by SimplyCoded
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 SimplyCoded/revit-mcp-bridge

使用说明

Revit MCP桥

通过模型上下文协议将AI助手(Claude、Gemini CLI)连接到Autodesk Revit。允许您直接从聊天界面查询和验证Revit结构模型。

MCP Client (Claude / Gemini) <--stdio--> server (Node.js) <--HTTP--> revit-plugin (C# inside Revit)

特性

  • 模型信息 --获取活动项目名称
  • 参数验证 --结构元素中缺失或空参数的健康报告
  • 基于规则的自动填充 --基于模型逻辑(材料汇总、墙功能标志、条件规则)导出和填充参数值

支架:结构框架、结构柱、结构基础、墙壁、地板。

需求

  • Autodesk Revit 2025
  • Node.js(在WSL或Windows中)
  • .NET SDK(用于构建插件)
  • 带镜像网络的WSL2(如果在WSL中运行MCP服务器)

设置

1.配置文件

复制示例配置并设置您的身份验证令牌:

cp config.example.json config.json
{
  "authToken": "your-secret-token",
  "revitPluginUrl": "http://127.0.0.1:8080/revit/"
}

config.json git被忽略,并且必须同时存在于MCP服务器计算机和已安装的Revit插件DLL中。

2.MCP服务器

cd server
npm install
npm run build

3.Revit插件

从Windows构建:

dotnet.exe build "...\revit-plugin\RevitMcpPlugin.csproj" -c Release -r win-x64

通过将这些文件复制到以下位置进行安装 %APPDATA%\Autodesk\Revit\Addins\2025\:

  • revit-plugin/bin/Release/win-x64/RevitMcpPlugin.dll
  • revit-plugin/RevitMcpPlugin.addin (更新 <Assembly> 里面的路)
  • config.json

4.WSL网络(如果在WSL中运行MCP服务器)

添加 C:\Users\<you>\.wslconfig:

[wsl2]
networkingMode=mirrored

然后运行 wsl --shutdown 从PowerShell重新打开WSL。这允许WSL访问Revit 127.0.0.1:8080 听众。

5.MCP客户端配置

双子星命令行工具 (C:\Users\<you>\Gemini\.gemini\settings.json):

{
  "mcpServers": {
    "revit-bridge": {
      "command": "node",
      "args": ["/path/to/revit-mcp-bridge/server/dist/index.js"]
    }
  }
}

克劳德桌面 (claude_desktop_config.json):

{
  "mcpServers": {
    "revit-bridge": {
      "command": "node",
      "args": ["/path/to/revit-mcp-bridge/server/dist/index.js"]
    }
  }
}

可用工具

get_revit_project_info

返回当前打开的Revit项目的名称。

validate_parameters

检查是否在结构图元上设置了所需的参数。

{
  "category": "OST_StructuralFraming",
  "additional_params": ["SBB_AssetID", "SBB_MaintenanceZone"]
}

返回一个健康报告,其中包含缺失或空参数的总数、通过数、失败数和每个元素的详细信息。

apply_parameter_rules

根据模型条件推导和填充参数值。使用 "action": "suggest" 预览更改或 "action": "auto-fill" 写他们。

{
  "category": "OST_Walls",
  "action": "suggest",
  "rules": [
    { "type": "material_summary", "target_param": "Material_Summary" },
    { "type": "wall_function_flag", "target_param": "IsExterior", "exterior_value": "True", "interior_value": "False" },
    { "type": "if_then", "if_param": "FUNCTION_PARAM", "if_value": "Exterior", "set_param": "SBB_IsExterior", "set_value": "True" }
  ]
}

规则类型:

类型 描述
material_summary 将元素中的材质名称聚合到目标参数中
wall_function_flag 根据墙类型是“内部”还是“外部”设置参数
if_then 当另一个参数与某个值匹配时,有条件地设置一个参数