用途:读写或调试 .ifc 文件(STEP Physical File,SPF,又称 Part 21/p21,由 ISO 10303-21 规定)。它是纯文本编码,每个实体实例占一行,属性值按顺序排列且不带名称。适用于 IFC2x3、IFC4、IFC4.3,三者 SPF 语法相同,仅 FILE_SCHEMA 标识与实体集不同。
主要能力:文件骨架固定为 ISO-10303-21; 开头、END-ISO-10303-21; 结尾,各段以 ENDSEC; 结束,IFC 只用 HEADER 与 DATA 两段,不应输出可选的 ANCHOR 或 REFERENCE 段。HEADER 固定含三个实体且顺序固定:FILE_DESCRIPTION(描述列表与 implementation_level)、FILE_NAME(名称、时间戳、作者、组织、预处理器、来源系统、授权)、FILE_SCHEMA(IFC2X3、IFC4 或 IFC4X3)。DATA 行格式为 #<id>=ENTITYNAME(attr1,attr2,...);,实体名大写,属性按 EXPRESS 声明顺序(含继承的显式属性),只序列化显式属性,不写 INVERSE 或 DERIVED。特殊记号:$ 表示未设置的可选属性,* 表示该槽位值由派生计算,#id 为引用(可前向或后向)。取值记法:字符串单引号、内嵌撇号双写、实数带点、枚举点号大写、布尔 .T./.F.、逻辑含 .U.、类型化值如 IFCBOOLEAN(.T.)、聚合用括号逗号分隔。非 ASCII 字符须用控制指令 \X\、\X2..\X0\、\X4..\X0\,不得写原始字节。ifcZIP 为 PKZip 2.04g(DEFLATE)压缩的 ZIP,主目录只含一个 .ifc 或一个 ifcXML 文件,扩展名 .ifcZIP,MIME 为 application/zip。
使用方式:按上述骨架与顺序书写;读取时先索引全部 #id 再解析引用(两遍解析)。
限制与常见错误:属性数量与显式属性数不符、把 INVERSE/DERIVED 当位置值序列化、$ 与 * 混用、写入原始非 ASCII 字节、ifcZIP 放多个模型文件,均会导致解析失败或语义错误。具体收费、平台与效果资料暂未提供。