8.11.3.4 IfcDerivedUnit
AbRV ⓘ
RV ⓘ
    8.11.3.4.1 Semantic definition
A derived unit is a unit that is formed from an expression of other units.
Figure 8.11.3.4.A — An example of how to assign miles per hour as a derived unit
    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. 
 | 
| 3 | 
                
                UserDefinedType
                
             | 
OPTIONAL IfcLabel | 
 Type of the derived unit if the UnitType attribute is set to USERDEFINED. 
 | 
| 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. 
 | 
| * | 
Dimensions
 | 
IfcDimensionalExponents | 
 
                    This attribute is formally derived.
                 
IfcDeriveDimensionalExponents(Elements) 
Dimensional exponents derived using the function IfcDeriveDimensionalExponents using (SELF) as the input value. 
 | 
Table 8.11.3.4.C 
    8.11.3.4.4 Formal propositions
| Name | 
Description | 
| WR1 | 
 Units as such shall not be re-defined as derived units. 
 | 
(SIZEOF (Elements) > 1) OR ((SIZEOF (Elements) = 1) AND (Elements[1].Exponent <> 1 )) 
 | 
| WR2 | 
 When attribute UnitType has enumeration value USERDEFINED
then attribute UserDefinedType shall also have a value. 
 | 
(UnitType <> IfcDerivedUnitEnum.USERDEFINED) OR
((UnitType = IfcDerivedUnitEnum.USERDEFINED) AND 
 (EXISTS(SELF.UserDefinedType))) 
 | 
Table 8.11.3.4.D 
    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;
    8.11.3.4.7 References