4. IFC中的成本信息表达

在IFC标准中,成本信息并非零散地附着在几何模型上,而是通过一套专门设计的实体、属性集和关系对象进行结构化表达。理解这套体系,是实现BIM五维成本数据导出的基础。本章将重点剖析IfcCostItem、IfcCostValue两个核心实体,以及它们如何通过属性集和关系与其他模型元素(如构件、工序、资源)建立关联。

4.1 核心成本实体:IfcCostItem 与 IfcCostValue

IFC中成本信息的根节点是 IfcCostItem,它代表一个成本条目或成本项,可以是一个单项工程、一个清单项、一笔间接费或一笔管理费。IfcCostValue 则用于描述具体的成本数值及其货币单位、时间基准等属性。两者是“条目”与“值”的分离设计,便于同一成本项在不同阶段(估算、预算、结算)拥有多个成本值。

实体名称 IFC 类型 核心作用 关键属性(选列)
IfcCostItem IfcControl 子类 定义成本条目本身,作为成本结构的节点 Name, Description, PredefinedType (如SUMMARY, USERDEFINED)
IfcCostValue IfcAppliedValue 子类 封装具体的成本数值、单位、日期、偏差 AppliedValue (IfcMeasureWithUnit), UnitBasis, ApplicableDate, FixedUntilDate
IfcCurrencyRelationship IfcResourceLevelRelationship 定义不同货币之间的汇率关系 RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime
设计意图提示: IfcCostItem 本身不直接存储金额,而是通过关系(IfcRelDefinesByProperties)关联属性集,或通过 IfcRelNests 形成父子层级。金额数值统一由 IfcCostValue 承载,这种分离使得成本结构可以独立于数值版本变化。

4.2 成本属性集:IfcCostItem 的扩展属性

IFC 为 IfcCostItem 预定义了多个属性集(Property Sets),用于描述成本条目在造价管理中的特定维度。这些属性集通过 IfcRelDefinesByProperties 关系挂接到成本条目上。

  • Pset_CostItemQuantityTakeOff:存放清单工程量信息,如净量、损耗量、计量单位。
  • Pset_CostItemFinancial:存放财务相关属性,如预算编号、成本中心、审批状态。
  • Pset_CostItemSchedule:存放时间维度属性,如计划开始/结束日期、实际发生日期。
  • Pset_CostItemBase:基础属性集,包含成本项类型、计量方式、是否含税等。
导出对接要点: 国内造价软件(如广联达、斯维尔)的清单项通常需要“项目编码”、“项目特征”、“工程量”、“单位”四个字段。在IFC中,这些信息分别映射到:IfcCostItem.Name(项目名称)、Pset_CostItemQuantityTakeOff(工程量)、IfcCostValue(综合单价/合价)。项目编码建议通过 IfcCostItem 的 Description 或自定义属性集传递。

4.3 成本关系体系:IfcRelNests、IfcRelAssignsToControl 与 IfcRelDefinesByProperties

IFC 通过三种主要关系将成本信息与模型、资源、时间关联起来,形成完整的五维成本网络。

关系实体 源端 目标端 语义说明
IfcRelNests 父级 IfcCostItem 子级 IfcCostItem 成本条目层级分解(如单项工程→单位工程→清单项)
IfcRelAssignsToControl IfcCostItem IfcProduct / IfcTask / IfcResource 成本条目控制哪些构件、工序或资源
IfcRelDefinesByProperties IfcCostItem IfcPropertySet 为成本条目附加属性集(如工程量、财务信息)
IFC成本信息关系体系 IfcCostItem Pset_CostItemQuantityTakeOff Pset_CostItemFinancial Pset_CostItemSchedule IfcProduct (构件) IfcTask (工序) IfcResource (资源) IfcCostValue IfcRelDefinesByProperties IfcRelAssignsToControl IfcRelDefinesByProperties / 直接引用 说明:IfcCostItem 通过三种关系分别连接属性集(左侧)、被控对象(右侧)和成本数值(下方),形成完整的五维成本信息网络。

4.4 成本层级结构:IfcCostItem 的树状分解

实际造价管理中,成本条目通常呈现树状层级(如建设项目→单项工程→单位工程→分部分项→清单项)。IFC 通过 IfcRelNests 关系实现这种父子嵌套。一个父级 IfcCostItem 可以包含多个子级 IfcCostItem,子级还可以继续嵌套,形成任意深度的成本分解结构(CBS)。

# 示例:IFC-SPF 格式的成本层级片段
#1=IfcProject(...);
#10=IfcCostItem('3$cB$y',#41,'土建工程',$,$,$,$,$);
#11=IfcCostItem('3$cB$z',#41,'混凝土工程',$,$,$,$,$);
#12=IfcCostItem('3$cB$a',#41,'C30混凝土浇筑',$,$,$,$,$);
#20=IfcRelNests('3$cB$b',#41,$,$,#10,(#11,#12));
#30=IfcCostValue(#100,$,$,$,$,$,$);
#40=IfcRelDefinesByProperties('3$cB$c',#41,$,$,(#12),#50);
#50=IfcPropertySet('3$cB$d',#41,'Pset_CostItemQuantityTakeOff',(#60));
#60=IfcPropertySingleValue('NetQuantity',$,$,$);
常见导出陷阱: 部分BIM软件在导出IFC时,会将所有成本条目平铺在根节点下,丢失层级关系。验证时需检查 IfcRelNests 关系是否存在,以及父子节点的引用是否正确。层级丢失会导致造价软件无法正确汇总。

4.5 成本与构件、工序、资源的关联

五维成本的核心在于“成本”维度与其他四个维度(几何、时间、资源、空间)的联动。IFC 通过 IfcRelAssignsToControl 关系,将 IfcCostItem 与以下对象关联:

  • IfcProduct(构件):表示该成本条目对应哪些物理构件,如一面墙、一根梁。
  • IfcTask(工序):表示该成本条目对应哪些施工任务,如支模、绑扎钢筋。
  • IfcResource(资源):表示该成本条目消耗哪些资源,如人工、材料、机械。

这种多对多的关联关系,使得造价软件可以从IFC模型中提取“某道工序上某类构件的成本”,实现动态成本核算。

IfcRelAssignsToControl 多对多关联示意 IfcCostItem IfcProduct (构件) IfcTask (工序) IfcResource (资源) IfcRelAssignsToControl IfcRelAssignsToControl IfcRelAssignsToControl 说明:一个 IfcCostItem 可以同时关联多个构件、工序和资源;反之,一个构件也可以被多个成本条目引用。 这种多对多关系是实现“成本-进度-资源”联动分析的数据基础。

4.6 成本信息导出检查清单

在将BIM模型中的成本信息导出为IFC时,建议按以下清单逐项检查,确保数据完整且符合造价软件对接要求:

检查项 IFC 对应元素 常见问题
成本条目是否存在 IfcCostItem 实例 遗漏间接费、措施费条目
层级结构是否完整 IfcRelNests 关系 父子关系丢失,所有条目平铺
工程量是否挂接 Pset_CostItemQuantityTakeOff 属性集缺失或工程量数值为空
成本数值是否赋值 IfcCostValue 缺少单价或合价,单位不明确
与构件的关联 IfcRelAssignsToControl → IfcProduct 成本条目未关联任何构件
货币单位是否统一 IfcCostValue.UnitBasis 混用人民币与美元未标注汇率
实战建议: 在导出前,先在BIM软件中建立统一的成本编码体系(如GB50500清单编码),并将编码写入 IfcCostItem.Description 或自定义属性。这样造价软件导入后可以直接识别清单项,无需人工二次映射。