IFC 4.3.2.20250219 (IFC4X3_ADD2) under development

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;

8.11.6.3.3 References

Edit on Github

3 contributor(s):
Last change: Improve definition split (#876) * bring back headers headers were previously removed by mistake, now bringing them back * add new lines and rename the tag add the word 'short' in it * unify newlines make exactly one newline before and two after the tag * resolving typos Because bringing back headers required to go back in time to previous version, I'm now re-resolving the issues: #861, #860, #856 by ArturTomczak on 7/16/2024, 2:07:28 PM

Is this page difficult to understand? Let us know!