返回 BIM 与 IFC 博客
导出修复 · 2026-10-02 · 10 分钟
IFC 空间结构详解:项目、场地、建筑、楼层与空间(附示意图)
每个 IFC 模型都挂在同一棵树上:项目、场地、建筑、楼层、空间。很多被归咎于查看器的问题——构件不属于任何楼层、平面剖切切穿楼板、模型偏离两公里——其实都是这棵树的问题。本文把它画出来,并列出会破坏它的错误。
IFC 空间结构详解:项目、场地、建筑、楼层与空间(附示意图) — IFC Viewer Online article cover
在任何查看器中打开任何 IFC 模型,你首先看到的——甚至早于任何一面墙——是一棵树:顶部是项目,然后是场地、建筑和一串楼层。它看起来像导航辅助,实际上却是文件的骨架。很多被归咎于查看器、导出或检查工具的问题,其实都出在这棵树上。
本文把这棵树画出来,解释构建它的两种不同关系,并列出破坏它的错误,以及每种错误对下游的影响。
IFC 空间结构。蓝色实线表示聚合(空间树);绿色虚线表示包含(每个构件恰好属于一个楼层)。
要点
- 空间树由聚合构建:项目 → 场地 → 建筑 → 楼层 → 空间。
- 实体构件不属于这棵树本身,而是通过另一种关系包含在某个空间元素中——通常是楼层。
- 没有包含关系的构件并不是“在建筑里的某处”。对于平面剖切、明细表、COBie 和大多数检查来说,它根本不存在。
五个层级及其作用
| 实体 | 表示什么 | 承载什么 |
|---|
| IfcProject | 整个项目——每个文件恰好一个 | 单位、表达上下文,一切的根 |
| IfcSite | 用地 | 参考经纬度和高程;地理参考从这里开始 |
| IfcBuilding | 用地上的一栋建筑 | 名称、地址、首层标高 |
| IfcBuildingStorey | 一个楼层 | 标高——平面剖切和按楼层明细表都依赖它 |
| IfcSpace | 一个房间或空气体积 | 名称、长名称、面积、体积——房间清单 |
在 IFC4.3 中,建筑层级扩展为设施:IfcBridge、IfcRoad、IfcRailway 和 IfcMarineFacility 位于 IfcBuilding 的位置,下面是设施部分。
两种关系,而不是一种
理解空间结构最有用的一点是:这里有两种不同的关系在起作用,它们的含义也不同。
- IfcRelAggregates 构建空间树。建筑分解为楼层,楼层分解为空间,这是整体–部分关系。
- IfcRelContainedInSpatialStructure 把实体构件——墙、门、水泵——放进这棵树。每个构件只能包含在一个空间元素中。
- IfcRelReferencedInSpatialStructure 添加次要引用:跨越两层的柱包含在一层中,并在另一层中被引用。
模型在哪里:沿着树传递的定位
空间树还承载坐标系。每个构件的位置都是一个相对于其父级的 IfcLocalPlacement——墙相对于楼层,楼层相对于建筑,建筑相对于场地。模型在地球上的位置只在最顶层确定一次。
定位是相对于父级的。真实世界坐标应放在顶层的地理参考中,而不是每个构件里。
如果把真实世界坐标塞进每个构件,模型会在屏幕上抖动,联合模型的各个文件会相距数公里。完整说明见 IFC 坐标与地理参考。
破坏空间树的六个错误
| 错误 | 常见原因 | 下游受影响的内容 |
|---|
| 构件不属于任何楼层 | 构件挂在参照标高上,或在组中创建 | 平面剖切、按楼层明细表、COBie 位置 |
| 构件直接包含在 IfcBuilding 或 IfcSite 下 | 导出设置,或场地构件建模时未指定标高 | 按楼层的检查会跳过它们 |
| 楼层标高错误 | 导出时单位或基点不一致 | 平面剖切切穿楼板、明细表标高错误 |
| 完全没有 IfcSpace | 房间未导出,或只导出为普通几何 | 房间清单、面积、COBie 的 Space 工作表 |
| 本应一个 IfcBuilding,却有两个 | 链接文件被分别导出 | 楼层重复,联合模型混乱 |
| 各专业楼层命名不一致 | 没有约定的标高命名规则 | 联合模型按楼层对不齐 |
这些问题大多是导出设置而非建模问题,而且只要先看树、再看几何,打开文件后十秒内就能发现。相应的检查是 如何验证 IFC 文件 的一部分,各软件的导出设置见 为什么 Revit 的 IFC 导出会出问题。
一分钟检查空间结构
- 打开文件,先看树 一个项目、一个场地、预期的建筑和预期的楼层——顺序正确,命名合理。
- 检查楼层标高 标高应逐层递增,并在约定公差内与图纸一致。如果相差 1000 倍,通常是单位的问题。
- 查找不属于任何楼层的构件 验证会标出它们。常见情况是构件包含在建筑下而不是楼层下。
- 每层做一次平面剖切 如果剖切切穿楼板或切不到墙,说明标高或包含关系有误。测量指南中介绍了按楼层剖切如何定位。
- 检查空间 如果项目需要房间清单或 COBie,每个房间都应是带名称的 IfcSpace,而不是一个着色的体块。
平面剖切步骤见 如何在线测量 IFC 模型;空间为何对交付很重要,见 从 IFC 生成 COBie。
IFC 空间结构详解:项目、场地、建筑、楼层与空间(附示意图)