Revit交互工具

revit-mcp是一个通过MCP协议与Revit交互的工具,允许AI获取和操作Revit项目数据。

  • by mcp-servers-for-revit
  • TypeScript
  • 本地部署
  • 475 星标
  • 更新于
在 GitHub 查看 lisiting01/revit-mcp

使用说明

🔴

[!警告] 弃用通知,此回购正在存档,以支持mcp的单回购方法https://github.com/mcp-servers-for-revit/mcp-servers-for-revit CI更简单,对noobs、npm包的混淆更少,安装更简单



revit mcp

英语| 简体中文

描述

revit-mcp允许您通过mcp支持的客户端(如Claude、Cline等)使用mcp协议与revit进行交互。

这个项目是服务器端(为AI提供工具),你需要使用 revit mcp插件 (驱动Revit)结合使用。

加入 Discord 的中文翻译是“不和谐”或“纷争”。 | QQ群

特性

  • 允许AI从Revit项目中获取数据
  • 允许AI驱动Revit创建、修改和删除图元
  • 将AI生成的代码发送到Revit执行(可能不成功,在一些要求明确的简单场景中成功率更高)

需求

  • 节点 18+

完整的安装环境还需要考虑revit mcp插件的需求,请参考 revit mcp插件

安装

1.建立本地MCP服务

安装依赖项

npm install

构建

npm run build

2.客户端配置

克劳德客户

Claude客户端->设置>开发者>编辑配置>Claude_desktop_Config.json

{
    "mcpServers": {
        "revit-mcp": {
            "command": "node",
            "args": ["<path to the built file>\\build\\index.js"]
        }
    }
}

重新启动Claude客户端。当您看到锤子图标时,表示与MCP服务的连接正常。

框架

flowchart LR
	ClaudeDesktop --> revit-mcp --> SocketService--commandName-->CommandSet--command-->CommandExecute
	CommandManager --> CommandSet
	CommandExecute --executeResult--> SocketService
	CommandProject1 --> CommandManager
	CommandProject2 --> CommandManager
	CommandProject... --> CommandManager
	subgraph ide1 [MCPClient]
	ClaudeDesktop
	end
	subgraph ide2 [MCPServer]
	revit-mcp
	end
	subgraph ide3 [Revit]
			subgraph ide3.1 [revit-mcp-plugin]
				SocketService
				CommandSet
				CommandManager
				CommandExecute
			end
	end

支持的工具

名称 描述
get_current_view_info 获取当前活动视图信息
get_current_view_elements 从当前活动视图中获取元素
get_available_family_type 获取当前项目中的可用族类型
get_selectd_elements 获取当前选定的元素
get_material_quantions 计算物料数量和起飞
ai_element_filter 用于ai助手的智能元素查询工具
analyze_model_statistics 使用元素计数分析模型复杂性
create_point_based_element 创建基于点的元素(门、窗、家具)
create_line_based_element 创建基于线的图元(墙、梁、管道)
create_surface_based_element 创建基于曲面的图元(地板、天花板、屋顶)
create_grid 创建具有智能间距生成的网格系统
create_level 在指定标高处创建标高
create_room 在指定位置创建和放置房间
create_structural_framing_system 创建结构梁框架系统
delete_element 按ID删除元素
operate_element 对元素进行操作(选择、设置颜色、隐藏等)
color_elements 基于参数值的颜色元素
tag_all_walls 标记当前视图中的所有墙
tag_all_rooms 标记当前视图中的所有房间
export_room_data 导出项目中的所有房间数据
store_project_data 将项目元数据存储在本地数据库中
store_room_data 将房间元数据存储在本地数据库中
query_stored_data 查询存储的项目和房间数据
send_code_to_revit 将C#代码发送到revit执行
say_hello 在Revit中显示问候语对话框(连接测试)