8.11.6.3 IfcDeriveDimensionalExponents(推导量纲指数)
8.11.6.3.1 语义定义(Semantic definition)
ISO/CD 10303-41:1992 标准定义:该函数用于确定单位的量纲指数。对于命名单位,返回其维度属性;对于派生单位,则根据其组成元素计算量纲指数。
参数定义: X:(输入)待推导量纲指数的单位。
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;