8.11.3.4 IfcDerivedUnit
8.11.3.4.1 Semantic definition
A derived unit is a unit that is formed from an expression of other units.
derived_unit
. New entity in IFC1.5.1.
8.11.3.4.2 Entity inheritance
8.11.3.4.3 Attributes
# | Attribute | Type | Description |
---|---|---|---|
IfcDerivedUnit (5) | |||
1 | Elements | SET [1:?] OF IfcDerivedUnitElement |
The group of units and their exponents that define the derived unit. |
2 | UnitType | IfcDerivedUnitEnum |
Type of the derived unit chosen from an enumeration of derived unit types for use in IFC models. The imperial unit name for a velosity measure is miles per hour, or mph, with a UnitType of .LINEARVELOCITYUNIT. |
3 | UserDefinedType | OPTIONAL IfcLabel |
Type of the derived unit if the UnitType attribute is set to USERDEFINED. The UserDefinedType shall only be used if the unit type is not available in UnitType. |
4 | Name | OPTIONAL IfcLabel |
Name of the unit in addition to the unit type, particularly when the derived unit elements refer to conversion or context based units. The imperial unit name for a velocity measure is miles per hour, or MPH, with a Name of 'MPH'. |
* | Dimensions | IfcDimensionalExponents |
This attribute is formally derived.
Dimensional exponents derived using the function IfcDeriveDimensionalExponents using (SELF) as the input value. |
8.11.3.4.4 Formal propositions
Name | Description |
---|---|
WR1 |
Units as such shall not be re-defined as derived units. |
|
|
WR2 |
When attribute UnitType has enumeration value USERDEFINED then attribute UserDefinedType shall also have a value. |
|
8.11.3.4.5 Examples
8.11.3.4.6 Formal representation
ENTITY IfcDerivedUnit;
Elements : SET [1:?] OF IfcDerivedUnitElement;
UnitType : IfcDerivedUnitEnum;
UserDefinedType : OPTIONAL IfcLabel;
Name : OPTIONAL IfcLabel;
DERIVE
Dimensions : IfcDimensionalExponents := IfcDeriveDimensionalExponents(Elements);
WHERE
WR1 : (SIZEOF (Elements) > 1) OR ((SIZEOF (Elements) = 1) AND (Elements[1].Exponent <> 1 ));
WR2 : (UnitType <> IfcDerivedUnitEnum.USERDEFINED) OR
((UnitType = IfcDerivedUnitEnum.USERDEFINED) AND
(EXISTS(SELF.UserDefinedType)));
END_ENTITY;