Link to Index Page

 EXPRESS Definition for IfcMeasureResource 

Link to Documentation Link to EXPRESS-G Diagram Link to IDL Definition

SCHEMA IfcMeasureResource;


ARRAY(0xb7aa14)


IfcAmountOfSubstanceMeasure

Link to Documentation

TYPE IfcAmountOfSubstanceMeasure = REAL;
END_TYPE;


IfcAreaMeasure

Link to Documentation

TYPE IfcAreaMeasure = REAL;
END_TYPE;


IfcContextDependentMeasure

Link to Documentation

TYPE IfcContextDependentMeasure = REAL;
END_TYPE;


IfcCountMeasure

Link to Documentation

TYPE IfcCountMeasure = NUMBER;
END_TYPE;


IfcDescriptiveMeasure

Link to Documentation

TYPE IfcDescriptiveMeasure = STRING;
END_TYPE;


IfcElectricCurrentMeasure

Link to Documentation

TYPE IfcElectricCurrentMeasure = REAL;
END_TYPE;


IfcLengthMeasure

Link to Documentation

TYPE IfcLengthMeasure = REAL;
END_TYPE;


IfcLuminousIntensityMeasure

Link to Documentation

TYPE IfcLuminousIntensityMeasure = REAL;
END_TYPE;


IfcMassMeasure

Link to Documentation

TYPE IfcMassMeasure = REAL;
END_TYPE;


IfcNumericMeasure

Link to Documentation

TYPE IfcNumericMeasure = NUMBER;
END_TYPE;


IfcParameterValue

Link to Documentation

TYPE IfcParameterValue = REAL;
END_TYPE;


IfcPositiveLengthMeasure

Link to Documentation

TYPE IfcPositiveLengthMeasure = IfcLengthMeasure;
 WHERE
  WR1: SELF > 0;
END_TYPE;


IfcPositivePlaneAngleMeasure

Link to Documentation

TYPE IfcPositivePlaneAngleMeasure = IfcPlaneAngleMeasure;
 WHERE
  WR1: SELF > 0;
END_TYPE;


IfcPositiveRatioMeasure

Link to Documentation

TYPE IfcPositiveRatioMeasure = IfcRatioMeasure;
 WHERE
  WR1: SELF > 0;
END_TYPE;


IfcPlaneAngleMeasure

Link to Documentation

TYPE IfcPlaneAngleMeasure = REAL;
END_TYPE;


IfcRatioMeasure

Link to Documentation

TYPE IfcRatioMeasure = REAL;
END_TYPE;


IfcSolidAngleMeasure

Link to Documentation

TYPE IfcSolidAngleMeasure = REAL;
END_TYPE;


IfcThermodynamicTemperatureMeasure

Link to Documentation

TYPE IfcThermodynamicTemperatureMeasure = REAL;
END_TYPE;


IfcTimeMeasure

Link to Documentation

TYPE IfcTimeMeasure = REAL;
END_TYPE;


IfcTimeDurationMeasure

Link to Documentation

TYPE IfcTimeDurationMeasure = REAL;
END_TYPE;


IfcTimeStamp

Link to Documentation

TYPE IfcTimeStamp = INTEGER;
END_TYPE;


IfcVolumeMeasure

Link to Documentation

TYPE IfcVolumeMeasure = REAL;
END_TYPE;


IfcCompoundPlaneAngleMeasure

Link to 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;


IfcBoolean

Link to Documentation

TYPE IfcBoolean = BOOLEAN;
END_TYPE;


IfcInteger

Link to Documentation

TYPE IfcInteger = INTEGER;
END_TYPE;


IfcReal

Link to Documentation

TYPE IfcReal = REAL;
END_TYPE;


IfcString

Link to Documentation

TYPE IfcString = STRING;
END_TYPE;


IfcSiPrefix

Link to Documentation

TYPE IfcSiPrefix = ENUMERATION OF (
    EXA
   ,PETA
   ,TERA
   ,GIGA
   ,MEGA
   ,KILO
   ,HECTO
   ,DECA
   ,DECI
   ,CENTI
   ,MILLI
   ,MICRO
   ,NANO
   ,PICO
   ,FEMTO
   ,ATTO );
END_TYPE;


IfcSiUnitName

Link to 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;


IfcDerivedUnitTypeEnum

Link to Documentation

TYPE IfcDerivedUnitTypeEnum = ENUMERATION OF (
    VolumetricFlowrateUnit
   ,MassFlowrateUnit
   ,PressureUnit
   ,EnergyUnit
   ,PowerUnit
   ,AngularVelocityUnit
   ,LinearVelocityUnit
   ,RotationalFrequencyUnit
   ,HeatfluxDensityUnit
   ,MassDensityUnit
   ,ThermalResistanceUnit
   ,ThermalTransmittanceUnit
   ,VoltageUnit
   ,DynamicViscosityUnit
   ,KinematicViscosityUnit
   ,Unspecified);
END_TYPE;


IfcUnitTypeEnum

Link to Documentation

TYPE IfcUnitTypeEnum = ENUMERATION OF (
    LengthUnit
   ,MassUnit
   ,TimeUnit
   ,DurationUnit
   ,ElectricCurrentUnit
   ,ThermodynamicTemperatureUnit
   ,AmountOfSubstanceUnit
   ,LuminousIntensityUnit
   ,PlaneAngleUnit
   ,SolidAngleUnit
   ,AreaUnit
   ,VolumeUnit
   ,RatioUnit
   ,Unspecified );
END_TYPE;


IfcMeasureValue

Link to 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;


IfcUnit

Link to Documentation

TYPE IfcUnit = SELECT (
    IfcDerivedUnit
   ,IfcNamedUnit );
END_TYPE;


IfcConversionBasedUnit

Link to Documentation

ENTITY IfcConversionBasedUnit
  SUBTYPE OF (IfcNamedUnit);
   Name             : STRING;
   ConversionFactor : IfcMeasureWithUnit;
END_ENTITY;


IfcContextDependentUnit

Link to Documentation

ENTITY IfcContextDependentUnit
  SUBTYPE OF (IfcNamedUnit);
   Name             : STRING;
END_ENTITY;


IfcDerivedUnit

Link to 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;


IfcDerivedUnitElement

Link to Documentation

ENTITY IfcDerivedUnitElement;
   Unit             : IfcNamedUnit;
   Exponent         : INTEGER;
END_ENTITY;


IfcDimensionalExponents

Link to Documentation

ENTITY IfcDimensionalExponents;
   LengthExponent                   : INTEGER;
   MassExponent                     : INTEGER;
   TimeExponent                     : INTEGER;
   ElectricCurrentExponent          : INTEGER;
   ThermodynamicTemperatureExponent : INTEGER;
   AmountOfSubstanceExponent        : INTEGER;
   LuminousIntensityExponent        : INTEGER;
END_ENTITY;


IfcMeasureWithUnit

Link to Documentation

ENTITY IfcMeasureWithUnit;
   ValueComponent : IfcMeasureValue;
   UnitComponent  : IfcUnit;
END_ENTITY;


IfcNamedUnit

Link to Documentation

ENTITY IfcNamedUnit
 SUPERTYPE OF (ONEOF(
    IfcSiUnit
   ,IfcConversionBasedUnit
   ,IfcContextDependentUnit ));
   Dimensions     : IfcDimensionalExponents;
   UnitType       : IfcUnitTypeEnum;
 WHERE
   WR1: IfcCorrectDimensions 
         (SELF.UnitType, SELF.Dimensions);
END_ENTITY;


IfcSiUnit

Link to Documentation

ENTITY IfcSiUnit
  SUBTYPE OF (IfcNamedUnit);
   Prefix         : OPTIONAL IfcSiPrefix;
   Name           : IfcSiUnitName;
 DERIVE
  SELF\IfcNamedUnit.Dimensions 
                  : IfcDimensionalExponents 
                  := IfcDimensionsForSiUnit (SELF.Name);
END_ENTITY;


IfcUnitAssignment

Link to Documentation

ENTITY IfcUnitAssignment;
   Units : SET [1:?] OF IfcUnit;
END_ENTITY;


IfcDeriveDimensionalExponents

Link to 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;


IfcDimensionsForSiUnit

Link to 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;


IfcCorrectDimensions

Link to 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