SuperAPI AI 工具集

ifc-impl-property-extraction

通用与其它

查看项目

更新于 10-15 22:18

技能介绍

用途:从 IFC 模型中读取某个构件的有效属性值与工程量值。难点不在找到单个 IfcPropertySet,而在于正确解析类型层与实例层的叠加关系,并处理 IFC2x3 与 IFC4 的反向属性差异。本技能属于读取侧;写入侧(附加属性集)见 ifc-impl-data-enrichment。

主要能力:解析实例属性集(occurrence.IsDefinedBy 到 IfcRelDefinesByProperties.RelatingPropertyDefinition);解析类型(IFC4+ 用 occurrence.IsTypedBy[0].RelatingType,IFC2x3 需在 IsDefinedBy 中筛选 IfcRelDefinesByType);读取类型属性集(typeObject.HasPropertySets);读取属性值(IfcPropertySet.HasProperties 到 IfcPropertySingleValue.NominalValue);读取工程量(IfcElementQuantity.Quantities 到 IfcQuantityArea.AreaValue 等);识别标准集(Pset_ 前缀为属性,Qto_ 前缀为工程量)。

关键规则:必须同时读取类型层与实例层,类型值为默认值、实例值覆盖之,只读一侧会得到错误结果;反向属性(IsDefinedBy、IsTypedBy 等)不存于 STEP 文件,需扫描所有 IfcRelDefinesByProperties 与 IfcRelDefinesByType 并按 RelatedObjects 分组重建;IfcPropertySet 与 IfcElementQuantity 共用同一挂接关系与 HasPropertySets 槽位,取回后须按实体类型分支;覆盖解析以属性集 Name 为键,不得按列表位置或 #id 覆盖。

用法要点:先读 STEP 头 FILE_SCHEMA 确定版本分支;重建反向属性索引;解析类型;收集类型集与实例集并展开 RelatingPropertyDefinition(IFC4+ 可能是 IfcPropertySetDefinitionSet);按实体类型拆分属性集与工程量集;类型优先、实例后合并;逐值解析单位(property.Unit 优先,否则由 NominalValue 的度量类型映射到 IfcProject 的 UnitsInContext)。

限制:本技能仅覆盖读取侧,不涉及写入;具体属性名、基数与度量到单位枚举的对照表见其 references 目录;资料未提供安装命令、收费与平台信息。