Index Page
Documentation |
EXPRESS-G Diagram |
IDL Definition |
SCHEMA IfcMeasureResource;
ARRAY(0xb7aa14)
Documentation
TYPE IfcAmountOfSubstanceMeasure = REAL; END_TYPE;
Documentation
TYPE IfcAreaMeasure = REAL; END_TYPE;
Documentation
TYPE IfcContextDependentMeasure = REAL; END_TYPE;
Documentation
TYPE IfcCountMeasure = NUMBER; END_TYPE;
Documentation
TYPE IfcDescriptiveMeasure = STRING; END_TYPE;
Documentation
TYPE IfcElectricCurrentMeasure = REAL; END_TYPE;
Documentation
TYPE IfcLengthMeasure = REAL; END_TYPE;
Documentation
TYPE IfcLuminousIntensityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcMassMeasure = REAL; END_TYPE;
Documentation
TYPE IfcNumericMeasure = NUMBER; END_TYPE;
Documentation
TYPE IfcParameterValue = REAL; END_TYPE;
Documentation
TYPE IfcPositiveLengthMeasure = IfcLengthMeasure; WHERE WR1: SELF > 0; END_TYPE;
Documentation
TYPE IfcPositivePlaneAngleMeasure = IfcPlaneAngleMeasure; WHERE WR1: SELF > 0; END_TYPE;
Documentation
TYPE IfcPositiveRatioMeasure = IfcRatioMeasure; WHERE WR1: SELF > 0; END_TYPE;
Documentation
TYPE IfcPlaneAngleMeasure = REAL; END_TYPE;
Documentation
TYPE IfcRatioMeasure = REAL; END_TYPE;
Documentation
TYPE IfcSolidAngleMeasure = REAL; END_TYPE;
Documentation
TYPE IfcThermodynamicTemperatureMeasure = REAL; END_TYPE;
Documentation
TYPE IfcTimeMeasure = REAL; END_TYPE;
Documentation
TYPE IfcTimeDurationMeasure = REAL; END_TYPE;
Documentation
TYPE IfcTimeStamp = INTEGER; END_TYPE;
Documentation
TYPE IfcVolumeMeasure = REAL; END_TYPE;
Documentation
TYPE IfcCompoundPlaneAngleMeasure = LIST [3:3] OF INTEGER;
WHERE
WR1: { 0 <= SELF[1] < 360 };
WR2: { 0 <= SELF[2] < 60 };
WR3: { 0 <= SELF[3] < 60 };
END_TYPE;
Documentation
TYPE IfcBoolean = BOOLEAN; END_TYPE;
Documentation
TYPE IfcInteger = INTEGER; END_TYPE;
Documentation
TYPE IfcReal = REAL; END_TYPE;
Documentation
TYPE IfcString = STRING; END_TYPE;
Documentation
TYPE IfcSiPrefix = ENUMERATION OF (
EXA
,PETA
,TERA
,GIGA
,MEGA
,KILO
,HECTO
,DECA
,DECI
,CENTI
,MILLI
,MICRO
,NANO
,PICO
,FEMTO
,ATTO );
END_TYPE;
Documentation
TYPE IfcSiUnitName = ENUMERATION OF (
METRE
,SQUARE_METRE
,CUBIC_METRE
,GRAM
,SECOND
,AMPERE
,KELVIN
,MOLE
,CANDELA
,RADIAN
,STERADIAN
,HERTZ
,NEWTON
,PASCAL
,JOULE
,WATT
,COULOMB
,VOLT
,FARAD
,OHM
,SIEMENS
,WEBER
,TESLA
,HENRY
,DEGREE_CELSIUS
,LUMEN
,LUX
,BECQUEREL
,GRAY
,SIEVERT);
END_TYPE;
Documentation
TYPE IfcDerivedUnitTypeEnum = ENUMERATION OF (
VolumetricFlowrateUnit
,MassFlowrateUnit
,PressureUnit
,EnergyUnit
,PowerUnit
,AngularVelocityUnit
,LinearVelocityUnit
,RotationalFrequencyUnit
,HeatfluxDensityUnit
,MassDensityUnit
,ThermalResistanceUnit
,ThermalTransmittanceUnit
,VoltageUnit
,DynamicViscosityUnit
,KinematicViscosityUnit
,Unspecified);
END_TYPE;
Documentation
TYPE IfcUnitTypeEnum = ENUMERATION OF (
LengthUnit
,MassUnit
,TimeUnit
,DurationUnit
,ElectricCurrentUnit
,ThermodynamicTemperatureUnit
,AmountOfSubstanceUnit
,LuminousIntensityUnit
,PlaneAngleUnit
,SolidAngleUnit
,AreaUnit
,VolumeUnit
,RatioUnit
,Unspecified );
END_TYPE;
Documentation
TYPE IfcMeasureValue = SELECT (
IfcLengthMeasure
,IfcMassMeasure
,IfcTimeMeasure
,IfcElectricCurrentMeasure
,IfcThermodynamicTemperatureMeasure
,IfcAmountOfSubstanceMeasure
,IfcLuminousIntensityMeasure
,IfcPlaneAngleMeasure
,IfcSolidAngleMeasure
,IfcAreaMeasure
,IfcVolumeMeasure
,IfcRatioMeasure
,IfcParameterValue
,IfcNumericMeasure
,IfcContextDependentMeasure
,IfcDescriptiveMeasure
,IfcPositiveLengthMeasure
,IfcPositivePlaneAngleMeasure
,IfcPositiveRatioMeasure
,IfcCountMeasure
,IfcCompoundPlaneAngleMeasure
,IfcTimeDurationMeasure
,IfcTimeStamp
,IfcBoolean
,IfcInteger
,IfcReal
,IfcString
);
END_TYPE;
Documentation
TYPE IfcUnit = SELECT (
IfcDerivedUnit
,IfcNamedUnit );
END_TYPE;
Documentation
ENTITY IfcConversionBasedUnit SUBTYPE OF (IfcNamedUnit); Name : STRING; ConversionFactor : IfcMeasureWithUnit; END_ENTITY;
Documentation
ENTITY IfcContextDependentUnit SUBTYPE OF (IfcNamedUnit); Name : STRING; END_ENTITY;
Documentation
ENTITY IfcDerivedUnit;
Elements : SET [1:?] OF IfcDerivedUnitElement;
UnitType : IfcDerivedUnitTypeEnum;
DERIVE
Dimensions : IfcDimensionalExponents
:= IfcDeriveDimensionalExponents(SELF);
WHERE
WR1: (SIZEOF (Elements) > 1)
OR ((SIZEOF (Elements) = 1)
AND (Elements[1].Exponent <> 1 ));
END_ENTITY;
Documentation
ENTITY IfcDerivedUnitElement; Unit : IfcNamedUnit; Exponent : INTEGER; END_ENTITY;
Documentation
ENTITY IfcDimensionalExponents; LengthExponent : INTEGER; MassExponent : INTEGER; TimeExponent : INTEGER; ElectricCurrentExponent : INTEGER; ThermodynamicTemperatureExponent : INTEGER; AmountOfSubstanceExponent : INTEGER; LuminousIntensityExponent : INTEGER; END_ENTITY;
Documentation
ENTITY IfcMeasureWithUnit; ValueComponent : IfcMeasureValue; UnitComponent : IfcUnit; END_ENTITY;
Documentation
ENTITY IfcNamedUnit
SUPERTYPE OF (ONEOF(
IfcSiUnit
,IfcConversionBasedUnit
,IfcContextDependentUnit ));
Dimensions : IfcDimensionalExponents;
UnitType : IfcUnitTypeEnum;
WHERE
WR1: IfcCorrectDimensions
(SELF.UnitType, SELF.Dimensions);
END_ENTITY;
Documentation
ENTITY IfcSiUnit
SUBTYPE OF (IfcNamedUnit);
Prefix : OPTIONAL IfcSiPrefix;
Name : IfcSiUnitName;
DERIVE
SELF\IfcNamedUnit.Dimensions
: IfcDimensionalExponents
:= IfcDimensionsForSiUnit (SELF.Name);
END_ENTITY;
Documentation
ENTITY IfcUnitAssignment; Units : SET [1:?] OF IfcUnit; END_ENTITY;
Documentation
FUNCTION IfcDeriveDimensionalExponents (
x : IfcUnit)
: IfcDimensionalExponents;
LOCAL
Result : IfcDimensionalExponents :=
IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0);
END_LOCAL;
IF 'IFCMEASURERESOURCE.IFCDERIVEDUNIT' IN TYPEOF(x) THEN
REPEAT i := LOINDEX(x.Elements) TO HIINDEX(x.Elements);
Result.LengthExponent :=
Result.LengthExponent +
(x.Elements[i].Exponent *
x.Elements[i].Unit.Dimensions.LengthExponent);
Result.MassExponent :=
Result.MassExponent +
(x.Elements[i].Exponent *
x.Elements[i].Unit.Dimensions.MassExponent);
Result.TimeExponent :=
Result.TimeExponent +
(x.Elements[i].Exponent *
x.Elements[i].Unit.Dimensions.TimeExponent);
Result.ElectricCurrentExponent :=
Result.ElectricCurrentExponent +
(x.Elements[i].Exponent *
x.Elements[i].Unit.Dimensions.ElectricCurrentExponent);
Result.ThermodynamicTemperatureExponent :=
Result.ThermodynamicTemperatureExponent +
(x.Elements[i].Exponent *
x.Elements[i].Unit.Dimensions.ThermodynamicTemperatureExponent);
Result.AmountOfSubstanceExponent :=
Result.AmountOfSubstanceExponent +
(x.Elements[i].Exponent *
x.Elements[i].Unit.Dimensions.AmountOfSubstanceExponent);
Result.LuminousIntensityExponent :=
Result.LuminousIntensityExponent +
(x.Elements[i].Exponent *
x.Elements[i].Unit.Dimensions.LuminousIntensityExponent);
END_REPEAT;
ELSE -- x is a unitless or a named unit
Result := x.Dimensions;
END_IF;
RETURN (Result);
END_FUNCTION;
Documentation
FUNCTION IfcDimensionsForSiUnit
(n : IfcSiUnitName )
: IfcDimensionalExponents;
CASE n OF
METRE : RETURN (IfcDimensionalExponents
(1, 0, 0, 0, 0, 0, 0));
SQUARE_METRE : RETURN (IfcDimensionalExponents
(2, 0, 0, 0, 0, 0, 0));
CUBIC_METRE : RETURN (IfcDimensionalExponents
(3, 0, 0, 0, 0, 0, 0));
GRAM : RETURN (IfcDimensionalExponents
(0, 1, 0, 0, 0, 0, 0));
SECOND : RETURN (IfcDimensionalExponents
(0, 0, 1, 0, 0, 0, 0));
AMPERE : RETURN (IfcDimensionalExponents
(0, 0, 0, 1, 0, 0, 0));
KELVIN : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 1, 0, 0));
MOLE : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 0, 1, 0));
CANDELA : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 1));
RADIAN : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 0));
STERADIAN : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 0));
HERTZ : RETURN (IfcDimensionalExponents
(0, 0, -1, 0, 0, 0, 0));
NEWTON : RETURN (IfcDimensionalExponents
(1, 1, -2, 0, 0, 0, 0));
PASCAL : RETURN (IfcDimensionalExponents
(-1, 1, -2, 0, 0, 0, 0));
JOULE : RETURN (IfcDimensionalExponents
(2, 1, -2, 0, 0, 0, 0));
WATT : RETURN (IfcDimensionalExponents
(2, 1, -3, 0, 0, 0, 0));
COULOMB : RETURN (IfcDimensionalExponents
(0, 0, 1, 1, 0, 0, 0));
VOLT : RETURN (IfcDimensionalExponents
(2, 1, -3, -1, 0, 0, 0));
FARAD : RETURN (IfcDimensionalExponents
(-2, -1, 4, 1, 0, 0, 0));
OHM : RETURN (IfcDimensionalExponents
(2, 1, -3, -2, 0, 0, 0));
SIEMENS : RETURN (IfcDimensionalExponents
(-2, -1, 3, 2, 0, 0, 0));
WEBER : RETURN (IfcDimensionalExponents
(2, 1, -2, -1, 0, 0, 0));
TESLA : RETURN (IfcDimensionalExponents
(0, 1, -2, -1, 0, 0, 0));
HENRY : RETURN (IfcDimensionalExponents
(2, 1, -2, -2, 0, 0, 0));
DEGREE_CELSIUS : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 1, 0, 0));
LUMEN : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 1));
LUX : RETURN (IfcDimensionalExponents
(-2, 0, 0, 0, 0, 0, 1));
BECQUEREL : RETURN (IfcDimensionalExponents
(0, 0, -1, 0, 0, 0, 0));
GRAY : RETURN (IfcDimensionalExponents
(2, 0, -2, 0, 0, 0, 0));
SIEVERT : RETURN (IfcDimensionalExponents
(2, 0, -2, 0, 0, 0, 0));
OTHERWISE : RETURN (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 0));
END_CASE;
END_FUNCTION;
Documentation
FUNCTION IfcCorrectDimensions
(m : IfcUnitTypeEnum;
Dim : IfcDimensionalExponents)
: LOGICAL;
CASE m OF
LengthUnit : IF
Dim = (IfcDimensionalExponents
(1, 0, 0, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
MassUnit : IF
Dim = (IfcDimensionalExponents
(0, 1, 0, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
TimeUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 1, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ElectricCurrentUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 0, 1, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ThermodynamicTemperatureUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 0, 0, 1, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
AmountOfSubstanceUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 0, 0, 0, 1, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
LuminousIntensityUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 1))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
PlaneAngleUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
SolidAngleUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
AreaUnit : IF
Dim = (IfcDimensionalExponents
(2, 0, 0, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
VolumeUnit : IF
Dim = (IfcDimensionalExponents
(3, 0, 0, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
RatioUnit : IF
Dim = (IfcDimensionalExponents
(0, 0, 0, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
OTHERWISE :
RETURN (UNKNOWN);
END_CASE;
END_FUNCTION;
END_SCHEMA; -- IfcMeasureResource