2. IFC标准基础

IFC(Industry Foundation Classes)是建筑信息模型(BIM)领域最核心的开放数据交换标准,由国际组织 buildingSMART(原 IAI)负责维护。理解 IFC 标准是打通 BIM 设计端与造价软件数据通道的前提。本节从发展历程、核心架构、数据模型层次三个维度展开。

2.1 IFC标准发展历程

IFC 标准自 1997 年首次发布以来,经历了多个重要版本迭代,逐步从建筑几何交换扩展至全生命周期数据共享。

版本 发布年份 核心特性
IFC 1.0 1997 首个版本,覆盖建筑几何与基本构件
IFC 2.0 1999 增加建筑服务、结构分析领域
IFC 2x 2003 引入平台架构(IFC2x Platform),支持扩展
IFC 2x3 2006 最广泛使用的版本,覆盖建筑、结构、MEP
IFC 4 2013 新增属性集、引用、IFCXML 改进
IFC 4x3 2022 扩展基础设施(桥梁、道路、铁路)
造价对接要点:目前国内造价软件对接以 IFC 2x3 和 IFC 4 为主。IFC 4 在属性集定义上更规范,更适合提取工程量与成本信息。

2.2 IFC核心架构

IFC 采用面向对象的数据建模方法,核心架构由四个层次构成,自底向上依次为:资源层(Resource Layer)、核心层(Core Layer)、共享层(Shared Layer)、领域层(Domain Layer)。上层实体可以引用下层实体,但下层不能引用上层,保证数据模型的单向依赖与稳定性。

IFC 核心架构四层模型 领域层(Domain Layer) 建筑、结构、暖通、电气、施工管理、造价等专业领域 共享层(Shared Layer) 共享建筑元素、共享服务元素、共享空间元素 核心层(Core Layer) IfcRoot、IfcObject、IfcRelationship、IfcPropertyDefinition 资源层(Resource Layer) 几何资源、拓扑资源、材料资源、成本资源、日期资源等 依赖方向:上层引用下层,下层不依赖上层,保证模型稳定性 造价相关实体主要分布在领域层(IfcCostItem)和资源层(IfcCostValue)

2.3 IFC数据模型层次

IFC 数据模型采用 EXPRESS 语言定义,并通过 IFCXML(XSD 格式)和 IFC-SPF(STEP 物理文件格式)两种序列化方式交换数据。数据模型层次从宏观到微观可分为:

  • Schema(模式):整个 IFC 标准的数据定义集合,如 IFC4 的完整模式。
  • Entity(实体):核心数据单元,如 IfcWall、IfcSlab、IfcCostItem。
  • Attribute(属性):实体的直接属性,如 IfcWall 的 Name、Description。
  • Property Set(属性集):动态扩展的属性集合,如 Pset_WallCommon。
  • Relationship(关系):实体之间的关联,如 IfcRelAggregates(聚合)、IfcRelDefinesByProperties(属性关联)。
造价关键实体:IfcCostItem(成本项)、IfcCostValue(成本值)、IfcCurrency(货币)、IfcConstructionResource(施工资源)、IfcProduct(产品,用于关联构件)。
IFC 数据模型层次关系 Schema(模式) Entity(实体) Attribute(属性) Property Set(属性集) Relationship(关系) 实例化路径:Schema → Entity → Attribute/Property Set → Relationship 造价数据通过 IfcRelDefinesByProperties 将 IfcCostItem 与构件关联

2.4 IFC数据序列化格式

IFC 标准支持两种主流序列化格式,造价软件对接时需根据场景选择:

格式 文件扩展名 特点 造价对接适用性
IFC-SPF .ifc STEP 物理文件,纯文本,体积小,解析快 推荐用于批量导出与解析
IFCXML .ifcxml XML 格式,可读性好,支持 XSLT 转换 适合与 XML 造价系统集成
IFC-ZIP .ifczip 压缩包,包含 .ifc 和 .ifcxml 用于网络传输与归档
注意:IFC-SPF 文件中的实体引用采用 # 编号(如 #123=IfcWall(...)),造价软件解析时需建立实体 ID 映射表,避免数据丢失。

2.5 IFC与造价对接的关键实体

在 IFC 标准中,与造价成本直接相关的实体主要集中在 IfcCostItem、IfcCostValue、IfcConstructionResource 及其关系链中。以下为典型实体结构示例:

#100=IfcProject('3sB$...', 'Project', '某办公楼', $, $, $);
#200=IfcWall('2aF4...', 'Wall', '外墙-01', $, $, #300, #400);
#500=IfcCostItem('4cG5...', 'CostItem', '外墙砌筑', $, $);
#600=IfcCostValue('5dH6...', 'CostValue', $, 350.00, 'CNY', $);
#700=IfcRelDefinesByProperties('6eI7...', $, $, (#200), #800);
#800=IfcPropertySet('7fJ8...', 'Pset_CostData', $, (#900));
#900=IfcPropertySingleValue('8gK9...', 'UnitPrice', $, IfcReal(120.50), $);
实践建议:在 BIM 建模阶段,为构件添加 IfcRelDefinesByProperties 关联至 IfcCostItem,并利用 IfcCostValue 记录单价与总价,可实现设计模型到造价数据的自动映射。