Token导航 LogoToken导航TokenDH.com
Revit Cs Test logo
运维云端stdio官方级别未说明来源级核验

Revit Cs Test

MCP Server

将Autodesk Revit API代码封装为本地MCP服务器,实现外部工具与Revit进程的安全交互。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
本地服务器C#开发工具API集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AlejoDuarte23

提供方

AlejoDuarte23

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp

详细介绍

Revit MCP项目

此存储库构建了一个集成,该集成将所有Autodesk Revit API代码保留在一个正常的Revit插件中,并通过本地MCP服务器公开工具。

外部服务器通过流式HTTP与MCP通信。桥接和Revit-side处理程序保持分离,因此Revit API仅在Revit内部执行。

Revit MCP Demo

回购中有什么

src/
  RevitMcp.Contracts/
    BridgeRequest.cs
    BridgeResponse.cs

  RevitMcp.Core/
    Services/
      DocumentService.cs
      WallService.cs
      DuctPressureDropService.cs

  RevitMcp.RevitAddin/
    App.cs
    CommandDispatcher.cs
    Bridge/
      BridgeExternalEventHandler.cs
      BridgeRequestBroker.cs
      LocalHttpBridge.cs
    Handlers/
      IRevitCommandHandler.cs
      PingHandler.cs
      GetActiveDocumentHandler.cs
      ListWallsHandler.cs
      ColorizeDuctPressureDropHandler.cs
    Manifest/
      RevitMcp.RevitAddin.addin

  RevitMcp.Server/
    Program.cs
    BridgeClient.cs
    Tools/
      RevitTools.cs

为什么形状看起来像这样

Revit API代码必须在Revit过程中运行,并在Revit-控制的执行中运行。

因此:

  • RevitMcp.RevitAddin 拥有每个Revit API调用。
  • RevitMcp.Server 位于Revit之外,仅公开MCP工具。
  • BridgeRequestBroker 通过Revit整理传入的网桥呼叫 ExternalEvent 而不是直接从侦听器线程调用API。

最后一点很重要。简单的HTTP侦听线程无法安全地读取或修改活动的Revit文档。

支持的Revit版本

该项目支持:

  • 修订版2024 (.NET Framework 4.8)
  • 修订版2025 (.NET 8)
  • 修订版2026 (.NET 8)

项目文件会根据以下内容自动选择正确的目标框架 RevitVersion 构建参数。Revit 2025+采用现代设计。NET 8运行时,而Revit 2024使用。NET框架4.8。

先决条件

在编译和运行加载项的机器上需要这些:

  • Windows 10或Windows 11
  • Autodesk Revit 2024、2025或2026
  • 当前服务器项目目标的.NET 10 SDK
  • Visual Studio 2022或其他支持MSBuild的环境
  • .NET Framework 4.8开发人员包(仅Revit 2024版本需要)

编译所需的Revit参考

Revit项目使用来自本地Revit安装的直接部件参照。

对于 RevitMcp.RevitAddin:

  • RevitAPI.dll
  • RevitAPIUI.dll

对于 RevitMcp.Core:

  • RevitAPI.dll

典型安装文件夹:

C:\Program Files\Autodesk\Revit 2024\
C:\Program Files\Autodesk\Revit 2025\
C:\Program Files\Autodesk\Revit 2026\

.csproj 文件已经支持以下任一方法:

  1. 按版本构建:
dotnet build .\RevitMcp.sln /p:RevitVersion=2024
dotnet build .\RevitMcp.sln /p:RevitVersion=2025
dotnet build .\RevitMcp.sln /p:RevitVersion=2026
  1. 通过显式安装文件夹构建:
dotnet build .\RevitMcp.sln /p:RevitInstallDir="C:\Program Files\Autodesk\Revit 2024"

如果找不到DLL,Revit项目将提前失败,并显示明显的MSBuild错误。

声明依赖关系的位置

对。依赖项已写入项目文件中。

  • RevitMcp.sln 仅列出哪些项目属于解决方案以及它们如何一起构建。
  • .csproj 文件包含真正的依赖关系声明。

当前依赖关系形状:

  • RevitMcp.RevitAddin.csproj

- ProjectReferenceRevitMcp.Contracts - ProjectReferenceRevitMcp.Core - 直接的 ReferenceRevitAPI.dll - 直接的 ReferenceRevitAPIUI.dll

  • RevitMcp.Core.csproj

- 直接的 ReferenceRevitAPI.dll

  • RevitMcp.Server.csproj

- ProjectReferenceRevitMcp.Contracts - PackageReferenceModelContextProtocol - PackageReferenceModelContextProtocol.AspNetCore

  • RevitMcp.Contracts.csproj

- PackageReferenceSystem.Text.Json

Revit项目仍然使用来自本地Revit安装的直接DLL引用,而服务器使用NuGet包作为MCP宿主。

在哪里注册插件

Revit通过以下方式发现附加模块 .addin 清单文件。

每个用户的注册文件夹:

%AppData%\Autodesk\Revit\Addins\2024\
%AppData%\Autodesk\Revit\Addins\2025\
%AppData%\Autodesk\Revit\Addins\2026\

所有用户注册文件夹:

%ProgramData%\Autodesk\Revit\Addins\2024\
%ProgramData%\Autodesk\Revit\Addins\2025\
%ProgramData%\Autodesk\Revit\Addins\2026\

要注册此演示:

  1. 构建 RevitMcp.RevitAddin.
  2. 编辑 src/RevitMcp.RevitAddin/Manifest/RevitMcp.RevitAddin.addin.
  3. 替换占位符 Assembly 价值与您构建的完整路径 RevitMcp.RevitAddin.dll.
  4. 将清单复制到目标Revit版本的Revit附加模块文件夹中。

例子:

C:\Repos\revit-mcp-cs-test\src\RevitMcp.RevitAddin\bin\Debug\net8.0-windows\RevitMcp.RevitAddin.dll

生成脚本

在下面添加了两个PowerShell脚本 scripts/ 用于Windows开发。

构建整个解决方案:

.\scripts\build-all.ps1 -RevitVersion 2026 -Configuration Debug

为当前用户生成并注册外接程序清单:

# For Revit 2024
.\scripts\build-all.ps1 -RevitVersion 2024 -Configuration Debug -RegisterAddin

# For Revit 2026
.\scripts\build-all.ps1 -RevitVersion 2026 -Configuration Debug -RegisterAddin

根据自定义Revit安装文件夹进行构建:

.\scripts\build-all.ps1 -RevitVersion 2024 -RevitInstallDir "D:\Apps\Autodesk\Revit 2024"

生成后单独注册清单:

.\scripts\register-addin.ps1 -RevitVersion 2024 -Configuration Debug -Scope CurrentUser

对于机器范围内的注册:

.\scripts\register-addin.ps1 -RevitVersion 2024 -Configuration Release -Scope AllUsers

手动构建和运行

1.构建Revit附加模块

# For Revit 2024 (builds against .NET Framework 4.8)
dotnet build .\src\RevitMcp.RevitAddin\RevitMcp.RevitAddin.csproj -c Debug /p:RevitVersion=2024

# For Revit 2026 (builds against .NET 8)
dotnet build .\src\RevitMcp.RevitAddin\RevitMcp.RevitAddin.csproj -c Debug /p:RevitVersion=2026

2.登记舱单

复制 src\RevitMcp.RevitAddin\Manifest\RevitMcp.RevitAddin.addin 更新后,将其放入匹配的Revit加载项文件夹中 Assembly 路径。

3.启动Revit

启动Revit 2024、2025或2026(无论您为哪个版本构建)并打开任何项目。

Revit完成初始化后,附加模块将在以下位置启动本地网桥侦听器:

http://127.0.0.1:5057/

4.构建并运行MCP服务器

dotnet build .\src\RevitMcp.Server\RevitMcp.Server.csproj -c Debug
dotnet run --project .\src\RevitMcp.Server\RevitMcp.Server.csproj

MCP服务器监听:

http://127.0.0.1:5099

5.连接MCP客户端

可流式传输的HTTP端点:

http://127.0.0.1:5099/mcp

使用附带的脚本对MCP端点进行烟雾测试:

pip install mcp
python .\scripts\test-mcp-server.py
python .\scripts\test-mcp-server.py --tool ping
python .\scripts\test-mcp-server.py --tool get_active_document
python .\scripts\test-mcp-server.py --tool list_walls
python .\scripts\test-mcp-server.py --tool colorize_duct_pressure_drop --arguments "{\"topCount\":10}"
python .\scripts\test-mcp-server.py --tool color_elements_by_id --arguments "{\"elementIds\":[12345,67890],\"red\":255,\"green\":0,\"blue\":0}"
python .\scripts\test-mcp-server.py --tool get_low_velocity_duct_elements --arguments "{\"maxVelocityMetersPerSecond\":2.5}"
python .\scripts\test-mcp-server.py --tool set_duct_dimensions --arguments "{\"elementIds\":[12345],\"widthMillimeters\":400,\"heightMillimeters\":200}"
python .\scripts\test-mcp-server.py --tool set_flex_duct_diameter --arguments "{\"elementIds\":[67890],\"diameterMillimeters\":250}"
python .\scripts\test-mcp-server.py --tool extract_system_air_elements --arguments "{\"systemName\":\"Mechanical Supply Air 17\"}"
python .\scripts\test-mcp-server.py --tool check_zero_pressure_drop_fittings --arguments "{\"systemName\":\"Mechanical Supply Air 17\"}"
python .\scripts\test-mcp-server.py --tool set_fitting_specific_coefficient --arguments "{\"systemName\":\"Mechanical Supply Air 17\",\"coefficient\":0.2}"

初始工具集

脚手架包括以下工具:

  • ping
  • get_active_document
  • list_walls
  • colorize_duct_pressure_drop (写入工具:应用活动视图元素替代)
  • color_elements_by_id (编写工具:使用调用方提供的RGB在活动视图中显式显示Revit图元ID)
  • get_low_velocity_duct_elements (读取工具:返回低于速度阈值(m/s)的风管和柔性风管)
  • set_duct_dimensions (写入工具:按图元ID设置风管宽度和/或高度,单位为毫米)
  • set_flex_duct_diameter (写入工具:按图元ID设置软风管直径(单位:毫米))
  • extract_system_air_elements (写入工具:将元素颜色匹配为蓝色,并将JSON导出到本地磁盘)
  • check_zero_pressure_drop_fittings (书写工具:为零压力管件着色并返回图元ID)
  • set_fitting_specific_coefficient (写入工具:将拟合损失方法设置为特定系数,默认值为0.2)

这足以证明:

  • 已加载Revit附加模块
  • 这座桥是可以到达的
  • 请求被安全地封送回Revit
  • 可以从活动文档返回数据

关于大桥的说明

外接程序使用 HttpListener 当地的演示桥。这很容易检查和测试,但它不是最好的生产选择。

对于生产硬化焊道,请考虑:

  • 命名管道而不是HTTP
  • 共享密钥或本地身份验证保护
  • 结构化测井
  • 超时
  • 请求验证
  • 显式异常映射
  • 排队执行限制

根据Windows机器策略, HttpListener 可能需要URL ACL保留。如果需要,在提升的shell中运行一次此命令:

netsh http add urlacl url=http://127.0.0.1:5057/ user=%USERNAME%

关于MCP服务器的说明

外部服务器已经通过Streamable HTTP公开了一个真正的MCP表面。

这意味着:

  1. MCP客户端可以从协议中发现工具。
  2. C#服务器仍然是一个薄薄的包装 BridgeClient.
  3. Revit附加模块仍然只能通过Revit注册 .addin 显示。

写入操作

首先从只读工具开始。添加写入工具时,请在正常的Revit事务中执行它们。

示例模式:

using (var tx = new Transaction(doc, "Create Demo Wall"))
{
    tx.Start();

    // Revit API write operations go here.

    tx.Commit();
}

建议的后续步骤

  • 添加 get_active_view
  • 添加 list_levels
  • 添加 list_rooms
  • 添加 list_sheets
  • 在事务后面添加一个安全写入操作
  • 根据需要添加更多MCP工具

参考链接

目录标签

目录标签

本地服务器C#开发工具API集成云端部署Revit插件建筑信息模型

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP