|
Documentation |
EXPRESS-G Diagram |
SCHEMA IfcMeasureResource;
Documentation
TYPE IfcAmountOfSubstanceMeasure = REAL; END_TYPE;
Documentation
TYPE IfcAngularVelocityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcAreaMeasure = REAL; END_TYPE;
Documentation
TYPE IfcBoolean = BOOLEAN; 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 IfcContextDependentMeasure = REAL; END_TYPE;
Documentation
TYPE IfcCountMeasure = NUMBER; END_TYPE;
Documentation
TYPE IfcDescriptiveMeasure = STRING; END_TYPE;
Documentation
TYPE IfcDynamicViscosityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcElectricCurrentMeasure = REAL; END_TYPE;
Documentation
TYPE IfcElectricVoltageMeasure = REAL; END_TYPE;
Documentation
TYPE IfcEnergyMeasure = REAL; END_TYPE;
Documentation
TYPE IfcFrequencyMeasure = REAL; END_TYPE;
Documentation
TYPE IfcHeatFluxDensityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcInteger = INTEGER; END_TYPE;
Documentation
TYPE IfcIntegerCountRateMeasure = INTEGER; END_TYPE;
Documentation
TYPE IfcKinematicViscosityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcLengthMeasure = REAL; END_TYPE;
Documentation
TYPE IfcLinearVelocityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcLuminousIntensityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcMassDensityMeasure = REAL; END_TYPE;
Documentation
TYPE IfcMassFlowRateMeasure = REAL; END_TYPE;
Documentation
TYPE IfcMassMeasure = REAL; END_TYPE;
Documentation
TYPE IfcMonetaryMeasure = REAL; END_TYPE;
Documentation
TYPE IfcNumericMeasure = NUMBER; END_TYPE;
Documentation
TYPE IfcParameterValue = REAL; END_TYPE;
Documentation
TYPE IfcPlaneAngleMeasure = 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 IfcPowerMeasure = REAL; END_TYPE;
Documentation
TYPE IfcPressureMeasure = REAL; END_TYPE;
Documentation
TYPE IfcRatioMeasure = REAL; END_TYPE;
Documentation
TYPE IfcReal = REAL; END_TYPE;
Documentation
TYPE IfcSolidAngleMeasure = REAL; END_TYPE;
Documentation
TYPE IfcString = STRING; END_TYPE;
Documentation
TYPE IfcThermalAdmittanceMeasure = REAL; END_TYPE;
Documentation
TYPE IfcThermalResistanceMeasure = REAL; END_TYPE;
Documentation
TYPE IfcThermalTransmittanceMeasure = REAL; END_TYPE;
Documentation
TYPE IfcThermodynamicTemperatureMeasure = REAL; END_TYPE;
Documentation
TYPE IfcTimeMeasure = REAL; END_TYPE;
Documentation
TYPE IfcTimeStamp = INTEGER; END_TYPE;
Documentation
TYPE IfcVolumeMeasure = REAL; END_TYPE;
Documentation
TYPE IfcVolumetricFlowrateMeasure = REAL; END_TYPE;
Documentation
TYPE IfcMeasureValue = SELECT (
IfcAmountOfSubstanceMeasure
,IfcAngularVelocityMeasure
,IfcAreaMeasure
,IfcBoolean
,IfcCompoundPlaneAngleMeasure
,IfcContextDependentMeasure
,IfcCountMeasure
,IfcDescriptiveMeasure
,IfcDynamicViscosityMeasure
,IfcElectricCurrentMeasure
,IfcElectricVoltageMeasure
,IfcEnergyMeasure
,IfcHeatFluxDensityMeasure
,IfcInteger
,IfcIntegerCountRateMeasure
,IfcKinematicViscosityMeasure
,IfcLengthMeasure
,IfcLinearVelocityMeasure
,IfcLuminousIntensityMeasure
,IfcMassDensityMeasure
,IfcMassFlowRateMeasure
,IfcMassMeasure
,IfcMonetaryMeasure
,IfcNumericMeasure
,IfcParameterValue
,IfcPlaneAngleMeasure
,IfcPositiveLengthMeasure
,IfcPositivePlaneAngleMeasure
,IfcPositiveRatioMeasure
,IfcPowerMeasure
,IfcPressureMeasure
,IfcRatioMeasure
,IfcReal
,IfcFrequencyMeasure
,IfcSolidAngleMeasure
,IfcString
,IfcThermalAdmittanceMeasure
,IfcThermalResistanceMeasure
,IfcThermalTransmittanceMeasure
,IfcThermodynamicTemperatureMeasure
,IfcTimeMeasure
,IfcTimeStamp
,IfcVolumeMeasure
,IfcVolumetricFlowrateMeasure);
END_TYPE;
Documentation
TYPE IfcUnit = SELECT (
IfcDerivedUnit
,IfcNamedUnit);
END_TYPE;
Documentation
TYPE IfcCurrencyEnum = ENUMERATION OF (
AED
,AES
,ATS
,AUD
,BBD
,BEG
,BGL
,BHD
,BMD
,BND
,BRL
,BSD
,BWP
,BZD
,CAD
,CBD
,CHF
,CLP
,CNY
,CYS
,CZK
,DDP
,DEM
,DKK
,EGL
,EST
,EUR
,FAK
,FIM
,FJD
,FKP
,FRF
,GBP
,GIP
,GMD
,GRX
,HKD
,HUF
,ICK
,IDR
,ILS
,INR
,IRP
,ITL
,JMD
,JOD
,JPY
,KES
,KRW
,KWD
,KYD
,LKR
,LUF
,MTL
,MUR
,MXN
,MYR
,NLG
,NZD
,OMR
,PGK
,PHP
,PKR
,PLN
,PTN
,QAR
,RUR
,SAR
,SCR
,SEK
,SGD
,SKP
,THB
,TRL
,TTD
,TWD
,USD
,VEB
,VND
,XEU
,ZAR
,ZWD);
END_TYPE;
Documentation
TYPE IfcDerivedUnitEnum = ENUMERATION OF (
AngularVelocityUnit
,DynamicViscosityUnit
,ElectricVoltageUnit
,EnergyUnit
,HeatfluxDensityUnit
,IntegerCountRateUnit
,KinematicViscosityUnit
,LinearVelocityUnit
,MassDensityUnit
,MassFlowrateUnit
,PowerUnit
,PressureUnit
,RotationalFrequencyUnit
,ThermalAdmittanceUnit
,ThermalResistanceUnit
,ThermalTransmittanceUnit
,VolumetricFlowrateUnit
,UserDefined
,NotDefined);
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 IfcUnitEnum = ENUMERATION OF (
LengthUnit
,MassUnit
,TimeUnit
,DurationUnit
,ElectricCurrentUnit
,ThermodynamicTemperatureUnit
,AmountOfSubstanceUnit
,LuminousIntensityUnit
,PlaneAngleUnit
,SolidAngleUnit
,AreaUnit
,VolumeUnit
,RatioUnit
,Unspecified);
END_TYPE;
|
Documentation |
Fully Attributed View |
ENTITY IfcContextDependentUnit
SUBTYPE OF (IfcNamedUnit);
Name : STRING;
END_ENTITY;
|
Documentation |
Fully Attributed View |
ENTITY IfcConversionBasedUnit
SUBTYPE OF (IfcNamedUnit);
Name : STRING;
ConversionFactor : IfcMeasureWithUnit;
END_ENTITY;
|
Documentation |
ENTITY IfcDerivedUnit;
Elements : SET [1:?] OF IfcDerivedUnitElement;
UnitType : IfcDerivedUnitEnum;
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
ABSTRACT SUPERTYPE OF (ONEOF(
IfcContextDependentUnit
,IfcConversionBasedUnit
,IfcSiUnit));
Dimensions : IfcDimensionalExponents;
UnitType : IfcUnitEnum;
WHERE
WR1: IfcCorrectDimensions (SELF.UnitType, SELF.Dimensions);
END_ENTITY;
|
Documentation |
Fully Attributed View |
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;
FUNCTION IfcCorrectDimensions
(m : IfcUnitEnum;
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;
DurationUnit : 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;
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;
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;
END_SCHEMA;