8.16.3.8 IfcPropertyEnumeratedValue(属性枚举值)
8.16.3.8.1 语义定义(Semantic definition)
具有枚举值的属性 IfcPropertyEnumeratedValue 定义了一个属性对象,其分配的值是从枚举中选择的。它定义了一个属性-值组合,其中给出了属性 Name、可选的 Description、具有度量类型的可选 EnumerationValues 以及可选的 Unit。
单位由 Unit 属性处理,参见表1中的枚举属性示例:
- 如果未给出 Unit 属性,则单位已由 IfcMeasureValue 或 IfcDerivedMeasureValue 的类型隐含。相关单位可在项目级别全局定义的 IfcUnitAssignment 中找到(IfcProject.UnitsInContext)。
- 如果给出了 Unit 属性,则单位属性分配的单位将覆盖全局分配的单位。
更准确地说:IfcPropertyEnumeratedValue 定义了一个属性,其值是从定义的枚举器列表中选择的。枚举器存储在值的动态枚举中,包括来自 IfcValue 的类型信息(参见 IfcPropertyEnumeration)。这使得应用程序能够使用枚举值作为属性集(IfcPropertySet)中的属性,包括允许的值列表。
| 名称 | 值(EnumerationValue) | 类型(通过 IfcValue) | IfcPropertyEnumeration(名称) |
|---|---|---|---|
| BladeAction | Opposed | IfcLabel | DamperBladeActionEnum |
| BladeAction | Parallel | IfcLabel | DamperBladeActionEnum |
IfcPropertyEnumeratedValue 引用一个 IfcPropertyEnumeration,参见表2中的示例:
| 名称 | EnumerationValues | 类型(通过 IfcValue) | 单位 |
|---|---|---|---|
| DamperBladeActionEnum | (Parallel, Opposed, Other, Unset) | IfcLabel | - |
使用 IfcPropertyEnumeration 实例来保存 IfcPropertyEnumeratedValue 的适用值不是强制性的,但这是首选方式。单个 IfcPropertyEnumeration 实例可以被多个 IfcPropertyEnumeratedValue 实例引用。
8.16.3.8.2 实体继承(Entity inheritance)
8.16.3.8.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcPropertyAbstraction (1) | |||
| IfcProperty (8) | |||
| 点击显示 9 个隐藏的继承特性 点击隐藏 9 个继承特性 | |||
| IfcPropertyEnumeratedValue (2) | |||
8.16.3.8.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| WR21 |
EnumerationValues 列表中的每个值都应是引用的 IfcPropertyEnumeration 中 EnumerationValues 列表的成员(前提是 EnumerationValues 和 EnumerationReference 均被声明)。 |
|
|
8.16.3.8.5 形式化表示(Formal representation)
ENTITY IfcPropertyEnumeratedValue
SUBTYPE OF (IfcSimpleProperty);
EnumerationValues : OPTIONAL LIST [1:?] OF IfcValue;
EnumerationReference : OPTIONAL IfcPropertyEnumeration;
WHERE
WR21 : NOT(EXISTS(EnumerationReference))
OR NOT(EXISTS(EnumerationValues))
OR (SIZEOF(QUERY(temp <* EnumerationValues |
temp IN EnumerationReference.EnumerationValues))
= SIZEOF(EnumerationValues));
END_ENTITY;