SuperAPI AI 工具集

ifc-errors-broken-references

通用与其它

查看项目

更新于 10-15 22:18

技能介绍

用途:诊断并修复 IFC 实例文件中的两类引用故障。一是悬空引用,即 #id 令牌解析不到任何实例或指向错误实体类型,属硬故障,解析器或校验器会报错;二是缺失的 INVERSE 链接,即本应连接元素与材质、属性集或空间容器的 IfcRel* 关系实体从未创建,属静默故障,文件仍通过校验但元素在下游工具中消失。

主要能力:提供症状到故障的映射、故障分类决策树,以及五类修复模式:检测并修复悬空引用(先索引整个文件再比对已定义与已引用 id 集合,因前向引用合法);检测类型错误的引用;修复孤立元素(缺失 IfcRelContainedInSpatialStructure);修复缺失材质关联(IfcRelAssociatesMaterial);修复缺失属性集(IfcRelDefinesByProperties)。并区分 $(合法空值)、*(派生属性)与悬空 #id。

使用方式:按决策树先分类故障再修复。悬空引用优先恢复或重建目标实例,或删除多余引用;类型错误则重指向正确类型实例;孤立元素创建一条 IfcRelContainedInSpatialStructure,且不得让元素同时属于两个容器(违反 WR31);材质与属性集分别通过对应关系实体创建,一个关系可服务多个元素。属性集需区分类型与实例:类型对象上的属性集经 IfcTypeObject.HasPropertySets 访问。

适用场景:IFC 解析器崩溃、校验器报类型或 WHERE 规则错误、元素在空间树或查看器中缺失、材质表或工程量清单为空、属性查询返回空。

限制:仅覆盖引用故障,STEP 语法与头部错误、EXPRESS WHERE 与全局规则违规、模型读取与遍历分别见其他技能。版本差异需注意:IFC2x3 中 IsDefinedBy 同时覆盖类型与属性,IFC4+ 拆分出 IsTypedBy;IFC4.3 中 IfcBuildingElement 更名为 IfcBuiltElement,不得在 IFC4.3 文件中使用旧名。具体检测脚本与修复 STEP 示例见其 references 文件。