SuperAPI AI 工具集

ifc-syntax-data-types

编程与开发

查看项目

更新于 10-16 05:48

技能介绍

用途:回答“IFC 属性或属性的值可以存放什么、在文件中如何标注类型”,基于 IFC 自身的资源层值类型系统,包括具名定义类型(IfcLengthMeasure、IfcLabel、IfcBoolean 等)与分组它们的 SELECT 联合。适用 IFC2x3、IFC4、IFC4.3,成员列表随版本不同。

主要能力:区分两层类型系统——EXPRESS 元语言(TYPE、ENTITY、SELECT、ENUMERATION 及 STRING、REAL、INTEGER、BOOLEAN、LOGICAL、BINARY、NUMBER)与 IFC 自身的值类型系统;解释 IfcValue 这一两级联合(IfcDerivedMeasureValue、IfcMeasureValue、IfcSimpleValue)。IfcSimpleValue 装无量纲原始值(布尔、整数、实数、字符串、逻辑、日期、二进制),IfcMeasureValue 装单一 SI 量纲的基础物理量(长度、面积、体积、角度、质量、计数、比率),IfcDerivedMeasureValue 装复合导出量(力、压力、速度、密度、传热系数、货币)。

使用方式:属性声明为具体类型时值直接裸写,如 IfcLabel 类型的 Name 写 'Wall-01';声明为 SELECT(如 IfcValue)时值必须用具体成员类型的全大写名包裹,如 IFCLABEL('REI 60')、IFCAREAMEASURE(12.5)、IFCBOOLEAN(.T.),包裹名即类型标签,不可裸写。选类型时按物理量纲选择 measure 类型,不由数值能否解析决定。逻辑上“未知/不适用”是独立第三态时用 IfcLogical(.T./.F./.U.),否则用 IfcBoolean;.U. 与未赋值的 $ 含义不同。短显示名用 IfcLabel,机器可读代码用 IfcIdentifier,自由描述文本用 IfcText。PredefinedType 为 USERDEFINED 时必须同时给出配套文本类型名(对象用 IfcObject.ObjectType,类型对象用 IfcElementType.ElementType)。Positive*、NonNegative*、Normalised* 是在基础 measure 上叠加 WHERE 规则的细化类型,赋值前须满足其约束。

限制与版本差异:IFC2x3 的 IfcSimpleValue 仅 7 个成员,不能把 IfcDateTime、IfcDate、IfcTime、IfcDuration、IfcBinary、IfcPositiveInteger、IfcURIReference 作为 IfcValue 载荷;IFC4.3 中 IfcCountMeasure 为 INTEGER,非整数计数在 IFC4 合法但在 IFC4.3 不合法。其他具体成员清单与更多示例、反模式说明在 references/methods.md、references/examples.md、references/anti-patterns.md 中;官方来源包括 buildingSMART 的 IfcValue、IfcSimpleValue、IfcMeasureValue、IfcDerivedMeasureValue 文档页。相关技能有 ifc-syntax-express、ifc-syntax-units、ifc-syntax-property-sets。