Skip to content

项目介绍 ​

AI_IFC 是一个自托管、开源的建筑 3D 建模平台,目标是让 AI 和设计师高效协作。它围绕一个核心构想构建:

AI 读 skill,写 Python 构建脚本;脚本经 IfcOpenShell 或 ezdxf 执行,产出 IFC 模型或 DXF 图纸。Python 脚本是模型的唯一事实源,前端的一切修改组件最终改的都是脚本。

这样做的好处很直接。模型文件可以随时从脚本重建,存储很轻;版本控制就是脚本的版本控制;两个模型的差异就是两份脚本的差异,可以精确算出来。

两条对等管线,外加一个推荐项 ​

逻辑一:AI 生成 IFC,已交付。 skills/aiifc 是给 AI 的建模参考包,services/ifc 是服务端运行时,负责脚本沙箱执行、版本快照、语义对比和编辑 API。

逻辑二:AI 生成 CAD,已交付。 skills/aiplan 把外部资料整理成任务书,skills/aidxf 把任务书画成逐层 DXF 图纸;services/cad 与 ifc 侧同构。另有 skills/aiblueprint-mcp 支持交互式微调。

推荐项:Agent 工作流,已落地。 平台内置 Eino chat agent,按项目类型派发 ifc 或 cad 子 agent。网页右侧的 AI 对话栏就是它驱动的,不需要外部 agent 服务。

可复用性是设计原则:两个 skill、两个业务服务都可以单独拿出来用,前端和 PostgreSQL 都是可选的。

定位与当前能力 ​

它是什么:一个 AI 可以直接接入的建模底座。编辑模型等于编辑脚本,版本是脚本的快照,对比是属性级的语义对比。IFC 和 DXF 两条管线同等对待。

面向谁:要自托管 BIM 工具链的团队,做 IFC 或 CAD 工具的开发者,以及需要「AI 可接入编辑底座」的研究者。

当前能力,端到端可用:创建项目,AI 生成模型,三维或二维审查,提 Issue,定位脚本并修改,沙箱验证,保存大版本,对比版本差异。

核心概念:script-as-source ​

PARAMS 表单 / 脚本编辑器(设计师)─┐
                                  ├─► 构建脚本 v{n}.py(唯一事实源)
AI agent(skill / REST 编辑 API)─┘        │ 沙箱执行
                                           ▼
                              IFC / DXF v{n}(派生产物,可随时重建)
  • 模型等于脚本。每个大版本保留完整的 scripts/v{n}.py,产物文件只留最新一份,历史版本需要时从脚本重建。
  • 选中构件可以定位到生成它的那一行脚本。改完先试运行看效果,满意再保存成大版本。
  • 版本对比分两层:脚本层面的文本 diff,加上构件属性层面的语义 diff。不做几何 diff,因为改几何就是改脚本。

概念细节见Script 编辑与版本,界面操作见编辑工作流。

组件架构 ​

组件技术职责
webReact 19,xeokit 与 web-ifc 双引擎,DXF 用 Fabric Canvas项目库、查看器、编辑面板、Issue、Diff、AI 对话栏
serverGo 1.26唯一对外入口,默认端口 8090。REST API、转换队列、编辑编排、chat agent,并托管前端构建产物
converterNode CLI把 IFC 转成 XKT 几何和元数据,由 server 当子进程调用
services/ifcPython FastAPI + IfcOpenShellIFC 脚本沙箱、版本、定位、语义对比,端口 8100
services/cadPython FastAPI + ezdxfDXF 脚本沙箱、版本、对比、render.json 发布,端口 8200
services/sandbox共享包 aibim_sandboxbwrap 沙箱后端和 script-as-source 领域模块,被两个服务引用
skills/SKILL.md 加参考文档aiifc、aiplan、aidxf 等五个 skill,AI 侧入口,可脱离平台单独分发

三个语言并存是生态现实:Go 适合网关,Python 绑定 IfcOpenShell 和 ezdxf,Node 绑定 xeokit 转换器。服务之间用 REST 和子进程解耦,任何组件都可以单独替换。详见总体架构。

部署形态 ​

宿主机直接运行,不用 Docker。生产环境只有 8090 一个端口:Go server 托管前端构建产物,浏览器只访问它。不配 PostgreSQL 也能跑,数据默认落文件;鉴权默认关闭,生产环境必须设置 token。部署步骤见快速开始。

许可 ​

AI_IFC 以 Apache-2.0 发布,见 LICENSE。例外目录保留原许可:skills/aiplan、skills/aidxf、skills/aiblueprint-mcp 为 MIT。完整清单见根目录 NOTICE。

需要特别注意 xeokit:web/ 前端依赖 AGPL-3.0 的 @xeokit/xeokit-sdk,分发包含它的前端构建产物时,整个产物受 AGPL 约束,网络使用即触发。闭源或商用场景请改走 three.js 加 web-ifc 的路径。converter 以子进程方式使用 xeokit-convert,它输出的 XKT 数据不受 AGPL 覆盖。

本仓库 fork 自 SimpleCADAPI,SCAD 时代的遗产代码已移到私有归档仓 0702hjj/SimpleCADAPI-archive。

Apache-2.0 · xeokit AGPL 注意事项见项目介绍