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 |
4.2 成本属性集:IfcCostItem 的扩展属性
IFC 为 IfcCostItem 预定义了多个属性集(Property Sets),用于描述成本条目在造价管理中的特定维度。这些属性集通过 IfcRelDefinesByProperties 关系挂接到成本条目上。
- Pset_CostItemQuantityTakeOff:存放清单工程量信息,如净量、损耗量、计量单位。
- Pset_CostItemFinancial:存放财务相关属性,如预算编号、成本中心、审批状态。
- Pset_CostItemSchedule:存放时间维度属性,如计划开始/结束日期、实际发生日期。
- Pset_CostItemBase:基础属性集,包含成本项类型、计量方式、是否含税等。
4.3 成本关系体系:IfcRelNests、IfcRelAssignsToControl 与 IfcRelDefinesByProperties
IFC 通过三种主要关系将成本信息与模型、资源、时间关联起来,形成完整的五维成本网络。
| 关系实体 | 源端 | 目标端 | 语义说明 |
|---|---|---|---|
| IfcRelNests | 父级 IfcCostItem | 子级 IfcCostItem | 成本条目层级分解(如单项工程→单位工程→清单项) |
| IfcRelAssignsToControl | IfcCostItem | IfcProduct / IfcTask / IfcResource | 成本条目控制哪些构件、工序或资源 |
| IfcRelDefinesByProperties | IfcCostItem | IfcPropertySet | 为成本条目附加属性集(如工程量、财务信息) |
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',$,$,$);
4.5 成本与构件、工序、资源的关联
五维成本的核心在于“成本”维度与其他四个维度(几何、时间、资源、空间)的联动。IFC 通过 IfcRelAssignsToControl 关系,将 IfcCostItem 与以下对象关联:
- IfcProduct(构件):表示该成本条目对应哪些物理构件,如一面墙、一根梁。
- IfcTask(工序):表示该成本条目对应哪些施工任务,如支模、绑扎钢筋。
- IfcResource(资源):表示该成本条目消耗哪些资源,如人工、材料、机械。
这种多对多的关联关系,使得造价软件可以从IFC模型中提取“某道工序上某类构件的成本”,实现动态成本核算。
4.6 成本信息导出检查清单
在将BIM模型中的成本信息导出为IFC时,建议按以下清单逐项检查,确保数据完整且符合造价软件对接要求:
| 检查项 | IFC 对应元素 | 常见问题 |
|---|---|---|
| 成本条目是否存在 | IfcCostItem 实例 | 遗漏间接费、措施费条目 |
| 层级结构是否完整 | IfcRelNests 关系 | 父子关系丢失,所有条目平铺 |
| 工程量是否挂接 | Pset_CostItemQuantityTakeOff | 属性集缺失或工程量数值为空 |
| 成本数值是否赋值 | IfcCostValue | 缺少单价或合价,单位不明确 |
| 与构件的关联 | IfcRelAssignsToControl → IfcProduct | 成本条目未关联任何构件 |
| 货币单位是否统一 | IfcCostValue.UnitBasis | 混用人民币与美元未标注汇率 |