返回 BIM 与 IFC 博客
每位 BIM 协调员都经历过这种情况:导出 IFC 文件,发送到公共数据环境(CDE),结果因为一些你根本不知道存在的结构性错误而被退回。在对数千个 IFC 文件运行验证之后,我们发现,绝大多数交付失败都源于同样的七种错误。
- 44 — 检查的规则数
- 7 — 种错误造成 80% 的退回
- 30 s — 即可验证任意模型
- 100% — 在你的浏览器中运行
1. 重复的 GlobalId(GUID)
GlobalId 是 IFC 构件的永久身份标识,在模型合并、版本更新和软件迁移中都会保留下来。当两个构件共用同一个 GUID 时,所有依赖稳定引用的工具(BCF 工作流程、Revit 链接跟踪、CDE 版本管理)都会悄无声息地失效。
2. 孤立构件
孤立构件是指在 IFC 层级中没有空间容器的实体构件:它存在于文件中,却不出现在 Project → Site → Building → Storey 之下。大多数查看器会直接跳过孤立构件。原因通常是构件被放在某个标高上,却没有与楼层平面关联;或者链接文件中的构件在导出时丢失了所属楼层。
3. 容器错误
构件有容器,但容器不对:它被直接放在 IfcSite 下,而不是某个楼层中。只有基础设施构件放在场地层级才是合理的。放在 IfcSite 下的墙或柱,会让从 Navisworks 到 Solibri 的每一个下游工具都无所适从。
4. 聚合关系断裂
IfcRelAggregates 是构建空间树的关系。聚合关系断裂,是指其中某个关系指向了不存在的实体,通常是因为实体在关系写入之后被删除,或者在模型合并过程中删除操作没有被正确传递。
5. 空间层级违规
IFC 规定了严格的顺序:IfcProject → IfcSite → IfcBuilding → IfcBuildingStorey → 实体构件。一旦这个顺序被打破(例如 Building 没有 Site 而直接位于 Project 之下,或者构件被放在 IfcBuilding 而不是楼层中),许多工具都无法正确构建空间树。
6. 缺少 IfcProject
每个有效的 IFC 文件都必须恰好包含一个 IfcProject,它是整个模型层级的根节点。一些生成子模型的导出流程会漏掉它,结果就是文件解析时不报错,却没有空间根节点。
7. 构件名称为空
Name = "" 或为 null 的构件并不违反模式(Schema),但几乎会破坏所有下游工作流程:BCF 评论无法清楚地引用它们,工程量统计表中会出现空白行,碰撞报告也会变得难以阅读。
在线运行验证
打开 buildingSMART 的 Duplex 模型,看看一份干净的 IFC 验证报告是什么样子;然后用你自己的模型试一试,检查是否存在这七种错误。
IFC2x3 · 2.4 MB
打开交互式 IFC 查看器
交付前检查清单
- 每次上传 CDE 之前都运行验证,而不是之后。
- 协调交付的目标:Health Score(健康评分)≥ 80。
- 重复 GUID 为零:这是 BCF 工作流程不容商量的底线。
- 所有实体构件都位于某个楼层中,而不是直接放在 Site 或 Building 下。
- 根节点有且只有一个 IfcProject,任何时候都是如此。
- 给每个构件命名,哪怕是通用名称(“Wall-001”也胜过空字符串)。
- 空间层级:Project → Site → Building → Storey → 构件。
最常见的 7 种 IFC 验证错误(及修复方法)