Pivot 候选路线对比——ADR 雏形
整合前四课,给出"做不做 / 先做哪块 / 怎么做 / 怎么退"的完整决策框架。
本课的产出
这是最后一课。前四课建立的判断力,在这里收敛成一份可执行的决策框架——回答你使命里的四个核心问题:
- 做不做——Pivot 该不该引入 BIM?
- 先做哪块——如果做,优先级如何排?
- 怎么做——技术路线、数据模型、合规边界
- 怎么退——什么信号出现就该回头?
这节课本身就是一份 ADR(Architecture Decision Record)雏形。读完你可以在 docs/architecture/ 下正式立项。整课 12 分钟可读完,是系列最长一节,但每一段都对应一个决策点。
Q1:做不做?——分层做
第一课已经回答了核心认知:"上 BIM" ≠ "做数字孪生"。Pivot 已经有数字孪生的"魂"(IoT 流、告警、工单、能碳),缺的是几何可视化载体。
所以问题不是"做不做数字孪生"(已经在做),而是"几何层要不要做、做到什么程度"。答案是分层做:
| 层 | 内容 | 是否做 | 理由 |
|---|---|---|---|
| L0 拓扑 | building/floor/space 层级(已有) | ✅ 已做 | Pivot 当前 bld_* 表,数字孪生内核 |
| L1 平面 | 2D 楼层平面图 + 设备点位 | ✅ 优先做 | ROI 最高,覆盖 80% 运营场景 |
| L2 体量 | 2.5D 挤出(footprint + 高度) | ⚠️ 选做 | 园区可视化、能耗模拟可选增强 |
| L3 BIM | IFC 预转 glTF 三维渲染 | ⚠️ 高端客户选做 | 管线/应急/空间规划场景,成本显著 |
| L4 园区 | 3D Tiles 流式(CesiumJS) | ❌ 暂不 | Bentley 收购变数 + 复杂度,园区级再评估 |
核心结论:L1 是必做、L3 是可选高端、L4 暂缓。这与业界智慧楼宇 SaaS(如 Kilo IoT)的事实做法一致——以 2D 平面图为锚,BIM 作为增强层而非默认层。
Q2:先做哪块?——L1 先行,L3 蓄能
即使决定要做 L3(BIM),也要先 L1 再 L3。理由:
- L1 是 L3 的语义基础——BIM 的 IfcSpace 必须先映射到 Pivot 的
bld_space,否则 3D 模型只是空壳。L1 把拓扑做扎实,L3 才有挂载点。 - L1 客户覆盖更广——中小客户拿不到 BIM(设计院不给,或给了质量差),但都有平面图。L1 让 90% 客户先用上可视化。
- L1 是 L3 的降级方案——客户没有 BIM 时,L1 平面图作为兜底;客户有 BIM 时,L1 + L3 并存。这种渐进式避免了"All-in BIM"的孤注一掷。
Q3:怎么做?——技术决策清单
L1 平面层的技术决策
| 决策点 | 推荐 | 理由 |
|---|---|---|
| 平面图输入格式 | SVG / DXF / PNG | 覆盖设计院常见交付,SVG 最易做交互 |
| 渲染方式 | SVG(小图)或 Canvas(大图) | 参考 Grafana floorplan、Axxon 方案 |
| 设备点位绑定 | 2D 坐标 + space_code | 复用现有 bld_space 体系,零侵入 |
| 多租户隔离 | 平面图按 tenant_code + building_code 存储 | 遵守 CONTEXT.md §6 不变量 1 |
L3 BIM 层的技术决策
| 决策点 | 推荐 | 理由 |
|---|---|---|
| 渲染路线 | 路线 B:IfcOpenShell 预转 GLB + xeokit | 开源全栈、可私有化、性能可控(第三课结论) |
| 原生解析(路线 A) | 仅用于"上传预览"等中小模型场景 | web-ifc 大模型卡死,不当主视图 |
| APS(路线 C) | 排除,除非客户深度绑定 Revit 且接受数据出域 | 计费、合规、闭源绑定三重风险 |
| LOD 目标 | LOD 300,明确拒绝 400+ | 运营期几何精度边际价值低(第四课结论) |
| 合同/RFP 用词 | LOIN(按场景列需求) | 避免设计院过度交付 |
| BIM ↔ 设备对齐 | IFC GlobalId ↔ iot_device.code 桥表 | 参考 BIM-to-BRICK 学术方法 |
| 语义层本体 | 借鉴 RealEstateCore 或 Brick | 不要重新发明轮子 |
| 转换服务部署 | IfcOpenShell 容器化,可私有化部署 | 满足国内政企客户合规 |
不可妥协的约束
- 多租户隔离:BIM 资源(IFC/GLB/平面图)必须按
tenant_code隔离,存储路径、URL、权限校验三道关 - 业务编码不可变:BIM 构件的 GlobalId 一旦绑定到
device_code,不可改(参 CONTEXT.md §6 不变量 2/3) - as-built drift 既定:产品文案不承诺"精确到螺栓",定位为"几何辅助 + 数据真相"
- 3D Tiles / Cesium 推迟:Bentley 2024-09 收购带来的合规变数,园区级再评估
Q4:怎么退?——回头信号清单
任何技术决策都要预设"什么信号出现就该回头"。本方案的退路信号:
| 信号 | 含义 | 应对 |
|---|---|---|
| L1 平面层客户使用率 < 30% | 客户根本不要可视化 | 降级为列表/表格视图,停止 L3 投入 |
| L3 BIM 客户付费意愿 < 转换服务成本 | BIM 是成本中心不是利润中心 | L3 转为合作方集成(让客户自带 APS/广联达) |
| as-built 投诉率 > 20% | 模型与现场偏离已影响信任 | 停止几何承诺,全面转向数据孪生叙事 |
| 合规要求强制本地化渲染 | Cesium/Bentley 路线不可用 | 3D Tiles 路线永久排除,专注 glTF + 自研引擎 |
| 转换服务运维成本失控 | IfcOpenShell 不稳定或性能不足 | 评估 APS 或商业转换服务替代 |
关键:每条退路都要有可量化的阈值。模糊的"情况不对就撤"等于没退路。建议把上述阈值写进季度 OKR 复盘。
一页纸决策摘要
做不做:分层做。L1 平面层必做,L3 BIM 高端客户选做,L4 园区暂缓。
先做哪块:L1 先行(3-6 月),L3 蓄能(6-12 月),L4 视情况(12+ 月)。
怎么做(L3):路线 B = IfcOpenShell 预转 GLB + xeokit 渲染;LOD 300;LOIN 写 RFP;GlobalId 桥接设备;RealEstateCore 借鉴语义。
怎么做(L1):SVG/DXF 平面图 + 2D 设备点位 + 现有 bld_space 体系。
怎么退:L1 使用率、L3 付费意愿、as-built 投诉率、合规要求、转换服务成本——五条量化退路。
从 ADR 雏形到正式立项
这节课的内容已经足够支撑一份正式 ADR。建议你下一步:
- 把本课的决策摘要 + 四问答案,落到
docs/architecture/adr-bim-twin.md(与你已有的world-model-research.md、graph-db-research.md并列) - 与团队 review,把"接受标准/拒绝标准"做成 checklist
- 把 L1 平面层写进下个迭代 OKR,技术选型可参考本课清单
- L3 BIM 先做技术 PoC:拿一个真实 IFC 文件跑 IfcOpenShell → GLB → xeokit 全链路,验证转换耗时与浏览性能
如果 PoC 通过且 L1 客户反馈正面,L3 可以进入正式路线图。如果 PoC 发现问题(比如 IfcOpenShell 处理某些 IFC 4.3 实体失败),那就回到本课的"退路信号"清单评估。