8.11.6.3 IfcDeriveDimensionalExponents
8.11.6.3.1 Semantic definition
Definition from ISO/CD 10303-41:1992: The function determines the dimensional exponents of a unit. For named units the dimensions attribute is returned and for derived units the dimensional exponents are calculated from its elements.
Argument definitions: X: (input) the unit that the dimensional exponents are being derived from.
8.11.6.3.2 Formal representation
FUNCTION IfcDeriveDimensionalExponents (UnitElements : SET [1:?] OF IfcDerivedUnitElement) : IfcDimensionalExponents; LOCAL Result : IfcDimensionalExponents := IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0); END_LOCAL; REPEAT i := LOINDEX(UnitElements) TO HIINDEX(UnitElements); Result.LengthExponent := Result.LengthExponent + (UnitElements[i].Exponent * UnitElements[i].Unit.Dimensions.LengthExponent); Result.MassExponent := Result.MassExponent + (UnitElements[i].Exponent * UnitElements[i].Unit.Dimensions.MassExponent); Result.TimeExponent := Result.TimeExponent + (UnitElements[i].Exponent * UnitElements[i].Unit.Dimensions.TimeExponent); Result.ElectricCurrentExponent := Result.ElectricCurrentExponent + (UnitElements[i].Exponent * UnitElements[i].Unit.Dimensions.ElectricCurrentExponent); Result.ThermodynamicTemperatureExponent := Result.ThermodynamicTemperatureExponent + (UnitElements[i].Exponent * UnitElements[i].Unit.Dimensions.ThermodynamicTemperatureExponent); Result.AmountOfSubstanceExponent := Result.AmountOfSubstanceExponent + (UnitElements[i].Exponent * UnitElements[i].Unit.Dimensions.AmountOfSubstanceExponent); Result.LuminousIntensityExponent := Result.LuminousIntensityExponent + (UnitElements[i].Exponent * UnitElements[i].Unit.Dimensions.LuminousIntensityExponent); END_REPEAT; RETURN (Result); END_FUNCTION;