BIM模型片段服务器

用于处理建筑信息模型(BIM)文件的模型上下文协议(MCP)服务器,提供IFC文件转换、片段加载和按类别查询BIM数据的功能。

  • by helenkwok
  • TypeScript
  • 本地部署
  • 39 星标
  • 更新于
在 GitHub 查看 helenkwok/openbim-mcp

使用说明

片段MCP服务器

用于处理建筑信息建模(BIM)文件的模型上下文协议(MCP)服务器。此服务器提供了将IFC文件转换为片段格式、加载片段和按类别查询BIM数据的工具。

特性

  • IFC到片段转换:将行业基础类(IFC)文件转换为开放且高效的片段格式
  • 碎片加载:加载并使用预转换的片段文件
  • 基于类别的查询:按类别(如墙、门、窗)获取具有可配置属性和关系的BIM元素

工具

convert-ifc-to-frag

将IFC文件转换为.frag文件格式以实现高效处理。

参数:

  • inputPath (string):要转换的IFC文件的完整路径
  • outputPath (string):保存输出.frass文件的完整路径

例子:

Input: /path/to/building.ifc
Output: /path/to/building.frag

load-frag

将.frag文件加载到内存中进行查询。

参数:

  • filePath (string):要加载的.frag文件的完整路径

fetch-elements-of-category

从加载的片段中获取指定IFC类别的元素。

参数:

  • category (string):类别名称(例如,“IFCWALL”、“IFCDOOR”、“IFCWINDOW”)
  • config (object):用于获取具有以下结构的元素的配置:
    • attributesDefault (boolean):包含默认属性
    • attributes (array):要包含的特定属性列表
    • relations (object):关系配置
      • HasAssociations:包括关联关系
      • IsDefinedBy:包括定义关系

依赖项

安装

  1. 安装依赖项:
pnpm install
  1. 运行服务器:
node main.ts

Claude桌面集成

要将此MCP服务器与Claude Desktop一起使用,请将以下配置添加到您的Claude Desktop设置文件中:

配置

  1. 打开克劳德桌面设置
  2. 导航到MCP服务器配置
  3. 添加以下JSON配置:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/your/models/directory"
      ]
    },
    "bim": {
      "command": "npx",
      "args": [
        "-y",
        "tsx",
        "/path/to/your/openbim-mcp/main.ts"
      ]
    }
  }
}

Claude Desktop的先决条件

  • Node.js必须安装并可通过以下方式访问 npx
  • 这 tsx 软件包应该可用(全局安装 npm install -g tsx 如果需要)
  • 文件系统和bim服务器都需要配置以实现完整功能

使用工作流程

  1. 将IFC转换为片段:使用 convert-ifc-to-frag 将IFC文件转换为高效的片段格式
  2. 加载碎片:使用 load-frag 将片段文件加载到内存中
  3. 查询元素:使用 fetch-elements-of-category 按IFC类别检索特定建筑图元

支持的IFC类别

您可以查询的常见类别包括:

  • IFCWALL -墙壁
  • IFCDOOR -门
  • IFCWINDOW -窗户
  • IFCSLAB -楼板/地板
  • IFCBEAM -横梁
  • IFCCOLUMN -列
  • IFCSPACE -空间/房间

需求

  • Node.js
  • 读取IFC文件和写入片段文件的文件系统访问
  • 与模型上下文协议客户端兼容

作者

郭