8.16.3.6 IfcPropertyBoundedValue(属性边界值)
RV ⓘ
AbV ⓘ
8.16.3.6.1 语义定义(Semantic definition)
具有边界值的属性 IfcPropertyBoundedValue 定义了一个最多分配两个(数值或描述性)值的属性对象,第一个值指定上限,第二个值指定下限。它定义了一个属性-值边界(最小-最大)组合,其中包含属性 Name、可选的 Description、具有度量类型的可选 UpperBoundValue、具有度量类型的可选 LowerBoundValue 以及可选的 Unit。除了上限和下限值外,还可以提供设定点值用于操作值设置。
单位由 Unit 属性处理,表1展示了一个边界属性的示例:
- 如果未给出 Unit 属性,则单位已由 IfcMeasureValue 或 IfcDerivedMeasureValue 的类型隐含。相关单位可在项目级别全局定义的 IfcUnitAssignment 中找到(IfcProject.UnitsInContext)。
- 如果给出了 Unit 属性,则 Unit 属性分配的单位将覆盖全局分配的单位。
IfcPropertyBoundedValue 允许为属性描述的值分量指定一个区间。如果未给出 LowerBoundValue 或 UpperBoundValue,则表示一个开放边界(最小值或最大值)。根据定义,该区间是包含性的,即 LowerBoundValue 或 UpperBoundValue 给出的值包含在区间内。
| 名称 | UpperBoundValue | LowerBoundValue | SetPointValue | Type (through IfcValue) | Unit |
|---|---|---|---|---|---|
| OverallHeight | 2300 | 1930 | IfcPositiveLengthMeasure | - | |
| OverallWidth | 1.25 | 0.9 | IfcPositiveLengthMeasure | m | |
| MaxHeight | 20.0 | IfcPositiveLengthMeasure | - | ||
| MinWeight | 20 | IfcMassMeasure | kg |
非正式命题
- 如果上限和下限值的度量类型是数值度量,则以下条件必须成立:UpperBoundValue > LowerBoundValue。
8.16.3.6.2 实体继承(Entity inheritance)
8.16.3.6.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcPropertyAbstraction (1) | |||
| IfcProperty (8) | |||
| 点击显示 9 个隐藏的继承特性 点击隐藏 9 个继承特性 | |||
| IfcPropertyBoundedValue (4) | |||
8.16.3.6.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| SameUnitLowerSet |
如果同时给出了下限和设定点,则 LowerBoundValue 的度量类型应与 SetPointValue 的度量类型相同。 |
|
|
| SameUnitUpperLower |
如果同时给出了上限和下限,则 UpperBoundValue 的度量类型应与 LowerBoundValue 的度量类型相同。 |
|
|
| SameUnitUpperSet |
如果同时给出了上限和设定点,则 UpperBoundValue 的度量类型应与 SetPointValue 的度量类型相同。 |
|
|
8.16.3.6.5 形式化表示(Formal representation)
ENTITY IfcPropertyBoundedValue
SUBTYPE OF (IfcSimpleProperty);
UpperBoundValue : OPTIONAL IfcValue;
LowerBoundValue : OPTIONAL IfcValue;
Unit : OPTIONAL IfcUnit;
SetPointValue : OPTIONAL IfcValue;
WHERE
SameUnitLowerSet : NOT(EXISTS(LowerBoundValue)) OR NOT(EXISTS(SetPointValue)) OR
(TYPEOF(LowerBoundValue) = TYPEOF(SetPointValue));
SameUnitUpperLower : NOT(EXISTS(UpperBoundValue)) OR NOT(EXISTS(LowerBoundValue)) OR
(TYPEOF(UpperBoundValue) = TYPEOF(LowerBoundValue));
SameUnitUpperSet : NOT(EXISTS(UpperBoundValue)) OR NOT(EXISTS(SetPointValue)) OR
(TYPEOF(UpperBoundValue) = TYPEOF(SetPointValue));
END_ENTITY;