使用说明

项目简介

Revit MCP Plugin 是一款 Autodesk Revit 插件,它充当 MCP (Model Context Protocol) 服务器,旨在桥接大型语言模型 (LLM) 客户端与 Revit 软件。通过标准的 MCP 协议,该插件允许 LLM 客户端访问 Revit 项目中的 BIM 数据,并调用预定义的功能来自动化 Revit 操作,例如元素创建、数据查询和视图控制等。该插件作为 Revit 的附加模块运行,无需独立的服务器程序,简化了部署和使用流程。需要配合独立的 MCP 客户端使用,例如 revit-mcp 项目提供的工具。

主要功能点

  • 资源访问 (Resources):
    • 获取当前视图信息(视图ID、名称、类型、比例等)。
    • 获取当前视图中的元素,可按模型类别和注释类别筛选,并支持包含隐藏元素。
    • 获取当前选中的元素。
    • 获取项目中可用的族类型,支持按类别和族名过滤。
  • 工具执行 (Tools):
    • 元素创建: 创建墙、门、楼板等基本 BIM 元素,支持参数化配置(如尺寸、标高等)。
    • 元素操作: 删除指定 ID 的元素。
    • 视图操作: 根据参数对视图中的元素进行颜色填充,以参数值区分颜色。
    • 注释操作: 为当前视图中的墙体自动添加标记。
    • 代码执行: 允许客户端发送 C# 代码到 Revit 中执行,实现更灵活的功能扩展。
  • 通信协议: 基于 JSON-RPC 2.0 协议进行通信,确保与 MCP 客户端的标准兼容。
  • 会话管理: 插件作为 Revit 模块运行,会话与 Revit 应用程序生命周期对齐。
  • 能力声明: 通过预定义的命令注册机制,声明服务器端提供的功能。
  • 传输协议: 使用 TCP Socket 进行网络通信,默认端口为 8080。

安装步骤

  1. 注册插件:

    • 复制 'revit-mcp-plugin.dll' 文件到 Revit 可以加载插件的目录,例如 'C:\ProgramData\Autodesk\Revit\Addins\2019' (Revit 2019 版本,请根据您的 Revit 版本调整目录)。
    • 修改或创建 Revit 的 AddIns 注册文件 ('.addin' 或 'RevitAddIns' XML 文件),将以下内容添加到注册文件中,并根据实际 dll 文件路径进行调整。通常 'RevitAddIns.xml' 文件位于 '%APPDATA%\Autodesk\Revit\Addins[Revit版本号]' 目录下。
    <?xml version="1.0" encoding="utf-8"?>
    <RevitAddIns>
      <AddIn Type="Application">
        <Name>revit-mcp</Name>
        <Assembly>revit-mcp-plugin.dll</Assembly>
        <FullClassName>revit_mcp_plugin.Core.Application</FullClassName>
        <ClientId>090A4C8C-61DC-426D-87DF-E4BAE0F80EC1</ClientId>
        <VendorId>revit-mcp</VendorId>
        <VendorDescription>https://github.com/revit-mcp/revit-mcp-plugin</VendorDescription>
      </AddIn>
    </RevitAddIns>
    • 确保 '<Assembly>' 标签指向 'revit-mcp-plugin.dll' 文件的正确路径。
    • 保存并关闭注册文件。
    • 重新启动 Revit 软件,插件应该会自动加载。
  2. 启用服务:

    • 在 Revit 启动后,在 Revit Ribbon 界面上找到 "Revit MCP Plugin" 选项卡。
    • 点击 "Claude MCP Switch" 按钮,启动 MCP 服务器。首次启动会弹出 "Open Server" 提示框,表示服务器已成功启动并开始监听客户端请求。再次点击 "Claude MCP Switch" 按钮会关闭服务器,弹出 "Close Server" 提示框。

服务器配置

Revit MCP Plugin 作为一个 Revit 插件运行,无需额外的服务器启动命令或参数配置。服务器在 Revit 内部启动和停止,通过插件界面上的按钮控制。

对于 MCP 客户端,连接到 Revit MCP 服务器时,需要配置以下信息:

{
  "serverName": "RevitMCP",
  "command": "不需要配置,插件在Revit内部运行",
  "args": "不需要配置",
  "host": "localhost",
  "port": 8080,
  "protocol": "json-rpc",
  "transport": "tcp-socket"
}

配置参数说明:

  • 'serverName': 服务器名称,例如 "RevitMCP",用于客户端识别连接的服务。
  • 'command': 无需配置。Revit MCP 服务器作为 Revit 插件运行,不需要独立的启动命令。
  • 'args': 无需配置。Revit MCP 服务器不需要命令行参数。
  • 'host': 主机地址,通常为 'localhost',因为插件和客户端可能运行在同一台计算机上。
  • 'port': 端口号,默认为 '8080'。MCP 客户端需要连接到此端口与 Revit MCP 服务器通信。
  • 'protocol': 通信协议,固定为 'json-rpc'。
  • 'transport': 传输协议,固定为 'tcp-socket'。

注意: MCP 客户端需要能够通过 TCP Socket 连接到 'localhost:8080' 以与 Revit MCP 服务器进行通信。请确保您的网络环境允许此连接。如果需要更改端口,请修改 'revit-mcp-plugin/AppConfig.cs' 文件中的 'Port' 属性并重新编译插件。

基本使用方法

  1. 确保 Revit MCP Plugin 已安装并成功加载到 Revit 中。
  2. 启动 Revit MCP 服务器:在 Revit 中点击 "Claude MCP Switch" 按钮启动服务器。
  3. 启动 MCP 客户端 (例如 'revit-mcp' 项目提供的客户端工具)。
  4. 在 MCP 客户端中,配置服务器连接信息,使用上面提供的 JSON 配置示例,确保主机地址和端口与 Revit MCP 服务器一致。
  5. 通过 MCP 客户端向 Revit MCP 服务器发送 JSON-RPC 请求,调用服务器提供的各种命令 (tools) 以访问 Revit 数据 (resources) 或执行 Revit 操作。
  6. 服务器会将处理结果以 JSON-RPC 响应的形式返回给客户端。
  7. 完成操作后,可以在 Revit 中点击 "Claude MCP Switch" 按钮停止 MCP 服务器。

示例请求:

以下是一个获取当前视图信息的 JSON-RPC 请求示例,客户端可以发送此请求到 Revit MCP 服务器:

{
  "jsonrpc": "2.0",
  "method": "get_current_view_info",
  "params": {},
  "id": "1"
}

服务器将返回包含当前视图信息的 JSON-RPC 响应。

请参考仓库代码和 'Commands' 目录下的命令实现,了解更多可用的命令和参数。

信息

分类

桌面与硬件