Skip to content

Repository files navigation

BIM 二三维联动修正工具

面向「AI 翻模 → 人工修正 → BIM 模型 → 工程量 + 现场管理」全链路的开放式 BIM 工作流平台。

上传 DXF 图纸 → 自动识别墙柱板梁 → 生成 3D IFC 模型 → 二三维联动在线修正 → 导出算量就绪 IFC。

快速开始

环境要求

  • Node.js ≥ 18
  • Python ≥ 3.11
  • Supabase 账号(用于多端同步,可选本地模式)

1. 克隆并安装

git clone <repo-url>
cd bim-platform

# 前端
npm install

# Python 后端
pip install -r requirements.txt

2. 配置 Supabase(可选)

如果不需要云端同步,跳过此步。本地 localStorage 仍可正常使用。

cp apps/web/.env.example apps/web/.env.local
# 编辑 .env.local 填入你的 Supabase URL 和 anon key

然后按 supabase/README.md 运行数据库迁移。

3. 启动

# 终端 1:Python 后端
python3 scripts/serve_ifc.py --port 8765

# 终端 2:前端开发服务器
npm run dev

打开 http://localhost:5173

4. 使用

  1. 点「打开 DXF」上传图纸
  2. 后端自动识别墙体、柱、板、梁,生成 IFC 3D 模型
  3. 左侧 2D 图纸 + 右侧 3D 模型双视口联动
  4. 在线修正:
    • 属性编辑:施工段、类型引用、实例覆盖
    • Gizmo 拖拽:W 移动 / E 旋转 / R 缩放
    • 2D 画墙:点「画墙」在平面图上绘制
    • 墙端点编辑:选中墙按 T,拖拽红/蓝球体
    • 删除:Delete 键或属性面板按钮
  5. 点「导出 IFC」输出修正后的 IFC

架构

apps/web/         前端 SPA (Vite + Three.js + web-ifc)
  ├─ shared/      跨工作台共享 (数据模型、视图器、IO、持久化)
  └─ workbenches/ 工作台 (studio / assemble / changes / qto / field)

scripts/          Python 后端 (FastAPI)
  ├─ dxf_to_ifc.py   DXF→IFC 转换管线
  ├─ export_ifc.py   IFC 修正导出
  └─ serve_ifc.py    HTTP 服务

supabase/         数据库迁移 (PostgreSQL + RLS)

详见 ARCHITECTURE.md

技术栈

技术
前端框架 Vite + vanilla JS (ES modules)
3D 渲染 Three.js 0.184
IFC 读写 web-ifc (前端) + IfcOpenShell (后端)
DXF 解析 dxf-parser (前端) + ezdxf (后端)
后端 FastAPI + uvicorn
认证/数据库/存储 Supabase
协同 Supabase Realtime (远期)

工作台

工作台 路由 状态
图纸修正 #/studio ✅ 可用
项目合模 #/assemble 🚧 开发中
变更管理 #/changes ⏳ 计划
工程量引擎 #/qto ⏳ 计划
现场同步 #/field ⏳ 计划

DXF→IFC 识别方法

墙体

  1. 共线段合并:按角度分桶 → 垂直距离 < 2mm → 投影间隙 < 500mm → 合并
  2. 平行配对:合并段两两比较 → 平行 + 重叠 > 50% + 间距 20−600mm → 配对
  3. 单线墙:未配对线段按长度+碎片数推断厚度 (250mm/200mm)

闭合多段线 (4−5 点, 长宽 < 2m) + INSERT 块引用

BEAM 图层 LINE 实体 → IfcBeam (300×600mm)

闭合多段线 → 面积 > 1m² → IfcSlab

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages