返回 BIM 与 IFC 博客
审阅过足够多外来 IFC 文件的 BIM 协调员,都会练出一种“模式识别”能力:同样的十类错误,在一个又一个项目、一款又一款建模软件中反复出现。它们并非随机发生,而是有固定的成因;只要导出设置正确,并在上传到公共数据环境(CDE)之前加一道检查,大部分都可以避免。
概览:10 类最常见的 IFC 错误
| 错误 | 严重程度 | 检测方法 | 下游影响 |
|---|
| 1. 重复 GUID | 错误 | L2 规则检查(仅数据层面可查) | CDE 版本追踪、碰撞检查、BCF 协调 |
| 2. 空间层级断裂 | 错误 | L2 规则检查(空间树) | 构件在协调工具中不可见;楼层筛选结果错误 |
| 3. 构件未分配到楼层 | 错误 | L2 规则检查(包含关系) | 按楼层统计工程量失败;协调筛选失效 |
| 4. 缺少属性集 | 警告/错误 | L2 规则检查(Pset 是否存在) | 工程量统计不准确;运维移交不完整;不符合信息交换要求(EIR) |
| 5. 分类编码错误或缺失 | 警告 | L2 规则检查(分类) | 采购流程受阻;运维资产台账不完整 |
| 6. 几何无效 | 错误 | L2 规则检查(几何有效性) | 碰撞检查误报;4D/5D 模拟失败 |
| 7. 构件关系损坏 | 警告 | L2 规则检查(关系完整性) | 空间树损坏;类型与实例之间的数据丢失 |
| 8. 违反命名规范 | 警告 | L2 规则检查(命名规则) | 协调工具中的筛选失效;需要人工返工 |
| 9. 缺少 ISO 19650 / EIR 元数据 | 警告/错误 | L3 IDS 验证 | 不符合 EIR;IDS 规范检查不通过 |
| 10. LOD/LOI 不一致 | 警告 | L2 + L3 规则检查 | 工程量统计不可靠;阶段评审检查不通过 |
10 类最常见的 IFC 错误及其严重程度和下游影响。
1. 重复 GUID
IFC 文件中的每个构件都必须带有一个全局唯一标识符(GUID)。它是一个 22 个字符、经 base64 编码的值,理论上在所有已创建的 IFC 文件中都应当唯一。如果在建模软件中复制粘贴构件时没有触发 GUID 重新生成,就会产生重复 GUID,结果是同一个文件里有两个或更多构件共用同一个标识符。
检测与成因
- 在 3D 查看器中不可见,需要做 L2 数据层面的检查
- IFC Viewer Online 会按构件名称和类型报告每一个重复项
- 成因:在 Revit 或 ArchiCAD 中复制粘贴后没有重置 GUID
- 成因:导入链接模型时没有处理 GUID 冲突
- 成因:建模软件特定版本的导出器存在缺陷
修复与预防
- 在 Revit 中:启用 IFC 导出器中“导出时重新生成 GUID”的选项
- 在 ArchiCAD 中:导出前使用 GUID 管理工具
- 预防:切勿在项目之间直接复制粘贴,应改用链接
- 预防:每次重大的模型合并之后都检查重复项
- 预防:每次上传到 CDE 之前都运行 Health Score(健康评分)检查
2. 空间层级断裂
IFC 空间层级是模型的骨架:IfcProject → IfcSite → IfcBuilding → IfcBuildingStorey → IfcSpace/构件。一旦这条链断开,比如建筑没有所属场地、楼层没有所属建筑,协调工具要么拒绝接收文件,要么悄无声息地给出错误结果。
检测与成因
- L2 规则检查:层级之间缺少 IfcRelAggregates 关系
- 构件出现在错误的楼层筛选结果中,或者根本不出现
- 成因:手动编辑 IFC 文件时改错了层级
- 成因:建模软件只导出了部分模型(仅单一专业)
- 成因:合并来自不同软件的模型时没有统一层级
修复与预防
- 在建模软件中修复:确保场地、建筑和楼层都实际建了模,而不只是隐含存在
- 在 Revit 中:检查 IFC 导出选项中的项目层级是否完整
- 预防:每次合并整合模型之后都验证层级
- 预防:切勿在建模软件之外手动编辑 IFC 层级
3. 构件未分配到楼层
构件存在于模型中,却没有通过 IfcRelContainedInSpatialStructure 关系关联到任何 IfcBuildingStorey。从技术上讲,它确实在文件里,但在建筑层级中实际上没有位置。协调工具是按楼层筛选的,未分配楼层的构件在这些筛选中根本看不到。
检测与成因
- L2 规则检查:没有空间包含关系的构件
- 成因:在 Revit 中把构件放在参照平面而不是标高上
- 成因:Revit 中标高为“No Level”的构件
- 成因:ArchiCAD 中未定义所属楼层(home storey)的构件
- 成因:放置时没有主体标高的常规模型族
修复与预防
- 在 Revit 中:逐一选中受影响的构件,设置其标高(Level)参数
- 在 Revit 明细表中按“No Level”筛选,找出所有受影响的构件
- 在 ArchiCAD 中:用 Element Information 检查并设置所属楼层
- 预防:把楼层分配列为建模标准审查的一项内容
- 预防:每次整合新的专业模型之后都运行 L2 检查
4. 缺少必需的属性集
Pset_WallCommon、Pset_BeamCommon、Pset_SpaceCommon 等标准 IFC 属性集(Pset)承载着下游工具所依赖的数据,例如工程量统计、运维移交和能耗分析。如果某个 Pset 缺失,或者其中的属性为空,这些下游流程就会得出错误或不完整的结果。
检测与成因
- L2 规则检查:某些构件类型缺少必需的 Pset
- 成因:导出器没有为该构件类型配置 Pset 映射
- 成因:自定义构件类型没有对应的 IFC Pset
- 成因:为了减小文件体积,把导出配置设成了“仅几何”
- 成因:映射到了错误的 IFC 实体类型,附加了错误的 Pset
修复与预防
- 检查建模软件导出器中的 Pset 映射表
- 为自定义构件类型添加指向相应 Pset 的显式映射
- 协调模型和交付模型绝不要用“仅几何”方式导出
- 预防:用 IDS 正式规定各项目阶段必需的 Pset
- 预防:交付前在 L3 IDS 检查中验证 Pset 的完整性
5. 分类编码错误或缺失
分类编码(Uniclass 2015、OmniClass、NBS 或各国的同类体系)是采购和运维资产台账所必需的,在 EIR 合规中也越来越不可或缺。分类编码缺失或错误,意味着造价团队无法生成正确的工程量清单(BOQ),运维团队也必须人工返工才能填充 CAFM 系统。
检测与成因
- L2 规则检查:分类属性缺失,或未关联到标准分类体系
- L3 IDS 检查:未满足特定的分类编码要求
- 成因:建模软件的导出中没有配置分类
- 成因:模型采用的分类体系与 EIR 的要求不一致
- 成因:自定义族没有分类编码参数
修复与预防
- 在建模软件的项目设置中配置分类体系
- 把所有构件类型映射到要求的分类表
- 用 IDS 正式规定需要使用哪种分类体系和哪些编码
- 预防:从项目第一天起就把分类写进 BIM 内容标准
- 预防:在每个阶段评审节点都对照 IDS 验证,而不只是在移交时
6. 几何无效或损坏
IFC 中的几何错误主要有三类:零体积构件(拉伸轮廓的面积为零)、未闭合的实体几何(实体表面有孔洞),以及失败的布尔运算(开洞剪切后得到非流形结果)。渲染器会把这些问题掩盖过去,所以查看模型时看不出来;只有当碰撞检查或模拟工具要对几何做数学运算时,它们才会暴露出来。
检测与成因
- L2 规则检查:几何有效性、体积检查、流形检查
- 成因:Revit 中构造不良的幕墙嵌板
- 成因:ArchiCAD 中复杂的布尔运算在导出时失败
- 成因:导入的几何(来自 DXF 或 STEP)本来就不是有效的实体几何
- 成因:手工绘制的几何中意外出现了面积为零的轮廓
修复与预防
- 利用检查工具的错误报告,按名称/类型定位到具体构件
- 用正确的实体建模方法重新创建这些构件
- 对于幕墙:检查嵌板的定义,而不只是整面墙
- 预防:避免把 DXF/DWG 几何直接导入 BIM 模型
- 预防:每次做完复杂的布尔运算后,都在 IFC 查看器中检查一遍几何
7. 构件关系损坏
IFC 用关系实体来表达构件之间的关系:IfcRelDefinesByType(类型与实例)、IfcRelAssociatesMaterial(材料指定)、IfcRelConnectsElements(结构连接)等。当这些关系格式有误,例如引用了不存在的实体,或者指向了错误类型的对象,数据模型就会前后矛盾,下游工具要么报错,要么悄悄忽略受影响的构件。
检测与成因
- L2 规则检查:悬空的关系引用、错误的实体类型
- 成因:手动编辑 IFC 破坏了引用完整性
- 成因:旧版本建模软件的导出器存在缺陷
- 成因:合并整合模型时出现关系冲突
修复与预防
- 从建模软件重新导出,不要手动编辑 IFC 文件
- 把建模软件的导出器更新到最新版本
- 预防:只把 IFC 当作交付格式,所有修改都在建模软件中完成
- 预防:每次更新导出器之后都做一次验证
8. 违反命名规范
BIM 项目会为构件类型、图层、视图和对象名称制定命名规范。如果 IFC 构件使用的是笼统的名称(“Wall”“Floor 1”“Beam”),或者各专业之间命名不统一,协调工具就无法正确应用专业筛选,造价团队不手动配置规则也就没法做自动算量。
检测与成因
- L2 规则检查:标记出笼统或为空的名称
- 成因:建模软件中族的默认名称没有修改
- 成因:命名规范文件在项目中下发得太晚
- 成因:从其他项目导入的内容沿用了不同的命名规范
修复与预防
- 利用检查报告找出名称不合规的构件
- 在建模软件中更正名称,不要在 IFC 文件里改名
- 预防:在项目启动时就下发命名规范文件
- 预防:在关键之处用 IDS 正式强制执行命名规则
9. 缺少 ISO 19650 / EIR 元数据
IDS 文件把 EIR 所要求的元数据正式固定下来:项目编号、阶段、专业代码、责任单位、LOD/LOI 等级以及自定义属性。IDS 一旦生效,任何没有携带必需属性的构件都无法通过 L3 IDS 检查,模型也就不符合交付要求。
检测与成因
- L3 IDS 验证:必需属性缺失或值类型错误
- 成因:没有尽早把 IDS 分发给各建模团队
- 成因:建模软件中没有配置承载 EIR 元数据的自定义 Pset
- 成因:IDS 检查之后新增的构件没有再对照 IDS 检查
修复与预防
- 在项目启动会上把 IDS 文件分发给所有建模团队
- 在建模软件模板中配置用来承载 EIR 元数据的自定义 Pset
- 在每个阶段评审节点都运行 L3 IDS 检查,而不只是在最终移交时
- 预防:把 IDS 作为 EIR 数据要求的机器可读版本
10. LOD / LOI 不一致
模型发展程度(Level of Development,LOD)和信息深度(Level of Information,LOI)的要求因项目阶段和构件类型而异。到了施工阶段,结构构件应达到 LOD 400(可直接用于加工的几何和完整的材料属性),而建筑装饰面层可能仍停留在 LOD 300。如果二者不一致,比如一面墙的几何是 LOD 200、属性数据却是 LOD 400,或者反过来,就会导致工程量统计不准确,阶段评审也通不过。
检测与成因
- L2 Pset 完整性检查 + L3 IDS LOI 属性检查
- 成因:LOD/LOI 矩阵没有清楚地传达给建模团队
- 成因:同一次导出中混杂了不同 LOD 的构件
- 成因:项目中途范围变更时没有更新 LOD 矩阵
修复与预防
- 用 IDS 正式规定每个阶段需要哪些属性
- 在每个阶段评审节点用 L3 IDS 检查验证 LOI 合规性
- 预防:在项目启动时按构件类型下发 LOD/LOI 矩阵
- 预防:借助 Health Score 在各阶段的变化趋势发现质量倒退
这十类最常见的 IFC 错误,没有一类能在 3D 查看器里看出来;而用 L2 模型检查工具,这十类都能在一分钟内检测出来。上传到 CDE 之前花五分钟做一次检查,是 BIM 协调员手中投入最少、回报最高的质量控制手段。
IFC 质量管理原则
想了解交付前检查和修复这些错误的分步工作流程,请参阅交付前如何检查 IFC 模型。想挑选用来做检查的工具,请参阅IFC 模型检查工具横向对比。想了解各检查等级背后的完整框架,请参阅IFC 模型检查工具完整指南。想弄清模型检查工具与查看器在概念上的区别,请参阅IFC 模型检查工具与 IFC 查看器的区别。要防止这些错误反复出现,就把阈值写进合同:真正能杜绝劣质 IFC 交付的 BIM 执行计划(BEP)条款。
10 个常见的 IFC 模型错误及检测方法