assimp/scripts/StepImporter/schema_ifc2x3.exp

9572 lines
261 KiB
Plaintext
Raw Normal View History

(*
Copyright by:
International Alliance for Interoperability, 1996-2005
All rights reserved. No part of this documentation may be
reproduced, stored in a retrieval system, or transmitted
in any form or by any means, without the prior written
permission of the owner.
Contents:
full IFC object model EXPRESS definitions for the IFC2x Edition 3 final version
- express longform distribution
- compiled for EXPRESS version 1 technical corrigendum 2
Issue date:
December 15, 2005
Development Team:
Modeling Support Group of the
International Alliance for Interoperability
compiled by Thomas Liebich tl@aec3.com
*)
SCHEMA IFC2X3;
TYPE IfcAbsorbedDoseMeasure = REAL;
END_TYPE;
TYPE IfcAccelerationMeasure = REAL;
END_TYPE;
TYPE IfcAmountOfSubstanceMeasure = REAL;
END_TYPE;
TYPE IfcAngularVelocityMeasure = REAL;
END_TYPE;
TYPE IfcAreaMeasure = REAL;
END_TYPE;
TYPE IfcBoolean = BOOLEAN;
END_TYPE;
TYPE IfcBoxAlignment = IfcLabel;
WHERE
WR1 : SELF IN ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'];
END_TYPE;
TYPE IfcComplexNumber = ARRAY [1:2] OF REAL;
END_TYPE;
TYPE IfcCompoundPlaneAngleMeasure = LIST [3:3] OF INTEGER;
WHERE
WR1 : { -360 <= SELF[1] < 360 };
WR2 : { -60 <= SELF[2] < 60 };
WR3 : { -60 <= SELF[3] < 60 };
WR4 : ((SELF[1] >= 0) AND (SELF[2] >= 0) AND (SELF[3] >= 0)) OR ((SELF[1] <= 0) AND (SELF[2] <= 0) AND (SELF[3] <= 0));
END_TYPE;
TYPE IfcContextDependentMeasure = REAL;
END_TYPE;
TYPE IfcCountMeasure = NUMBER;
END_TYPE;
TYPE IfcCurvatureMeasure = REAL;
END_TYPE;
TYPE IfcDayInMonthNumber = INTEGER;
END_TYPE;
TYPE IfcDaylightSavingHour = INTEGER;
WHERE
WR1 : { 0 <= SELF <= 2 };
END_TYPE;
TYPE IfcDescriptiveMeasure = STRING;
END_TYPE;
TYPE IfcDimensionCount = INTEGER;
WHERE
WR1 : { 0 < SELF <= 3 };
END_TYPE;
TYPE IfcDoseEquivalentMeasure = REAL;
END_TYPE;
TYPE IfcDynamicViscosityMeasure = REAL;
END_TYPE;
TYPE IfcElectricCapacitanceMeasure = REAL;
END_TYPE;
TYPE IfcElectricChargeMeasure = REAL;
END_TYPE;
TYPE IfcElectricConductanceMeasure = REAL;
END_TYPE;
TYPE IfcElectricCurrentMeasure = REAL;
END_TYPE;
TYPE IfcElectricResistanceMeasure = REAL;
END_TYPE;
TYPE IfcElectricVoltageMeasure = REAL;
END_TYPE;
TYPE IfcEnergyMeasure = REAL;
END_TYPE;
TYPE IfcFontStyle = STRING;
WHERE
WR1 : SELF IN ['normal','italic','oblique'];
END_TYPE;
TYPE IfcFontVariant = STRING;
WHERE
WR1 : SELF IN ['normal','small-caps'];
END_TYPE;
TYPE IfcFontWeight = STRING;
WHERE
WR1 : SELF IN ['normal','small-caps','100','200','300','400','500','600','700','800','900'];
END_TYPE;
TYPE IfcForceMeasure = REAL;
END_TYPE;
TYPE IfcFrequencyMeasure = REAL;
END_TYPE;
TYPE IfcGloballyUniqueId = STRING(22) FIXED;
END_TYPE;
TYPE IfcHeatFluxDensityMeasure = REAL;
END_TYPE;
TYPE IfcHeatingValueMeasure = REAL;
WHERE
WR1 : SELF > 0.;
END_TYPE;
TYPE IfcHourInDay = INTEGER;
WHERE
WR1 : { 0 <= SELF < 24 };
END_TYPE;
TYPE IfcIdentifier = STRING;
END_TYPE;
TYPE IfcIlluminanceMeasure = REAL;
END_TYPE;
TYPE IfcInductanceMeasure = REAL;
END_TYPE;
TYPE IfcInteger = INTEGER;
END_TYPE;
TYPE IfcIntegerCountRateMeasure = INTEGER;
END_TYPE;
TYPE IfcIonConcentrationMeasure = REAL;
END_TYPE;
TYPE IfcIsothermalMoistureCapacityMeasure = REAL;
END_TYPE;
TYPE IfcKinematicViscosityMeasure = REAL;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcLengthMeasure = REAL;
END_TYPE;
TYPE IfcLinearForceMeasure = REAL;
END_TYPE;
TYPE IfcLinearMomentMeasure = REAL;
END_TYPE;
TYPE IfcLinearStiffnessMeasure = REAL;
END_TYPE;
TYPE IfcLinearVelocityMeasure = REAL;
END_TYPE;
TYPE IfcLogical = LOGICAL;
END_TYPE;
TYPE IfcLuminousFluxMeasure = REAL;
END_TYPE;
TYPE IfcLuminousIntensityDistributionMeasure = REAL;
END_TYPE;
TYPE IfcLuminousIntensityMeasure = REAL;
END_TYPE;
TYPE IfcMagneticFluxDensityMeasure = REAL;
END_TYPE;
TYPE IfcMagneticFluxMeasure = REAL;
END_TYPE;
TYPE IfcMassDensityMeasure = REAL;
END_TYPE;
TYPE IfcMassFlowRateMeasure = REAL;
END_TYPE;
TYPE IfcMassMeasure = REAL;
END_TYPE;
TYPE IfcMassPerLengthMeasure = REAL;
END_TYPE;
TYPE IfcMinuteInHour = INTEGER;
WHERE
WR1 : {0 <= SELF <= 59 };
END_TYPE;
TYPE IfcModulusOfElasticityMeasure = REAL;
END_TYPE;
TYPE IfcModulusOfLinearSubgradeReactionMeasure = REAL;
END_TYPE;
TYPE IfcModulusOfRotationalSubgradeReactionMeasure = REAL;
END_TYPE;
TYPE IfcModulusOfSubgradeReactionMeasure = REAL;
END_TYPE;
TYPE IfcMoistureDiffusivityMeasure = REAL;
END_TYPE;
TYPE IfcMolecularWeightMeasure = REAL;
END_TYPE;
TYPE IfcMomentOfInertiaMeasure = REAL;
END_TYPE;
TYPE IfcMonetaryMeasure = REAL;
END_TYPE;
TYPE IfcMonthInYearNumber = INTEGER;
WHERE
WR1 : { 1<= SELF <= 12 };
END_TYPE;
TYPE IfcNormalisedRatioMeasure = IfcRatioMeasure;
WHERE
WR1 : {0.0 <= SELF <= 1.0};
END_TYPE;
TYPE IfcNumericMeasure = NUMBER;
END_TYPE;
TYPE IfcPHMeasure = REAL;
WHERE
WR21 : {0.0 <= SELF <= 14.0};
END_TYPE;
TYPE IfcParameterValue = REAL;
END_TYPE;
TYPE IfcPlanarForceMeasure = REAL;
END_TYPE;
TYPE IfcPlaneAngleMeasure = REAL;
END_TYPE;
TYPE IfcPositiveLengthMeasure = IfcLengthMeasure;
WHERE
WR1 : SELF > 0.;
END_TYPE;
TYPE IfcPositivePlaneAngleMeasure = IfcPlaneAngleMeasure;
WHERE
WR1 : SELF > 0.;
END_TYPE;
TYPE IfcPositiveRatioMeasure = IfcRatioMeasure;
WHERE
WR1 : SELF > 0.;
END_TYPE;
TYPE IfcPowerMeasure = REAL;
END_TYPE;
TYPE IfcPresentableText = STRING;
END_TYPE;
TYPE IfcPressureMeasure = REAL;
END_TYPE;
TYPE IfcRadioActivityMeasure = REAL;
END_TYPE;
TYPE IfcRatioMeasure = REAL;
END_TYPE;
TYPE IfcReal = REAL;
END_TYPE;
TYPE IfcRotationalFrequencyMeasure = REAL;
END_TYPE;
TYPE IfcRotationalMassMeasure = REAL;
END_TYPE;
TYPE IfcRotationalStiffnessMeasure = REAL;
END_TYPE;
TYPE IfcSecondInMinute = REAL;
WHERE
WR1 : { 0. <= SELF < 60. };
END_TYPE;
TYPE IfcSectionModulusMeasure = REAL;
END_TYPE;
TYPE IfcSectionalAreaIntegralMeasure = REAL;
END_TYPE;
TYPE IfcShearModulusMeasure = REAL;
END_TYPE;
TYPE IfcSolidAngleMeasure = REAL;
END_TYPE;
TYPE IfcSoundPowerMeasure = REAL;
END_TYPE;
TYPE IfcSoundPressureMeasure = REAL;
END_TYPE;
TYPE IfcSpecificHeatCapacityMeasure = REAL;
END_TYPE;
TYPE IfcSpecularExponent = REAL;
END_TYPE;
TYPE IfcSpecularRoughness = REAL;
WHERE
WR1 : {0.0 <= SELF <= 1.0};
END_TYPE;
TYPE IfcTemperatureGradientMeasure = REAL;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcTextAlignment = STRING;
WHERE
WR1 : SELF IN ['left', 'right', 'center', 'justify'];
END_TYPE;
TYPE IfcTextDecoration = STRING;
WHERE
WR1 : SELF IN ['none', 'underline', 'overline', 'line-through', 'blink'];
END_TYPE;
TYPE IfcTextFontName = STRING;
END_TYPE;
TYPE IfcTextTransformation = STRING;
WHERE
WR1 : SELF IN ['capitalize', 'uppercase', 'lowercase', 'none'];
END_TYPE;
TYPE IfcThermalAdmittanceMeasure = REAL;
END_TYPE;
TYPE IfcThermalConductivityMeasure = REAL;
END_TYPE;
TYPE IfcThermalExpansionCoefficientMeasure = REAL;
END_TYPE;
TYPE IfcThermalResistanceMeasure = REAL;
END_TYPE;
TYPE IfcThermalTransmittanceMeasure = REAL;
END_TYPE;
TYPE IfcThermodynamicTemperatureMeasure = REAL;
END_TYPE;
TYPE IfcTimeMeasure = REAL;
END_TYPE;
TYPE IfcTimeStamp = INTEGER;
END_TYPE;
TYPE IfcTorqueMeasure = REAL;
END_TYPE;
TYPE IfcVaporPermeabilityMeasure = REAL;
END_TYPE;
TYPE IfcVolumeMeasure = REAL;
END_TYPE;
TYPE IfcVolumetricFlowRateMeasure = REAL;
END_TYPE;
TYPE IfcWarpingConstantMeasure = REAL;
END_TYPE;
TYPE IfcWarpingMomentMeasure = REAL;
END_TYPE;
TYPE IfcYearNumber = INTEGER;
END_TYPE;
TYPE IfcActionSourceTypeEnum = ENUMERATION OF
(DEAD_LOAD_G
,COMPLETION_G1
,LIVE_LOAD_Q
,SNOW_S
,WIND_W
,PRESTRESSING_P
,SETTLEMENT_U
,TEMPERATURE_T
,EARTHQUAKE_E
,FIRE
,IMPULSE
,IMPACT
,TRANSPORT
,ERECTION
,PROPPING
,SYSTEM_IMPERFECTION
,SHRINKAGE
,CREEP
,LACK_OF_FIT
,BUOYANCY
,ICE
,CURRENT
,WAVE
,RAIN
,BRAKES
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcActionTypeEnum = ENUMERATION OF
(PERMANENT_G
,VARIABLE_Q
,EXTRAORDINARY_A
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcActuatorTypeEnum = ENUMERATION OF
(ELECTRICACTUATOR
,HANDOPERATEDACTUATOR
,HYDRAULICACTUATOR
,PNEUMATICACTUATOR
,THERMOSTATICACTUATOR
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcAddressTypeEnum = ENUMERATION OF
(OFFICE
,SITE
,HOME
,DISTRIBUTIONPOINT
,USERDEFINED);
END_TYPE;
TYPE IfcAheadOrBehind = ENUMERATION OF
(AHEAD
,BEHIND);
END_TYPE;
TYPE IfcAirTerminalBoxTypeEnum = ENUMERATION OF
(CONSTANTFLOW
,VARIABLEFLOWPRESSUREDEPENDANT
,VARIABLEFLOWPRESSUREINDEPENDANT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcAirTerminalTypeEnum = ENUMERATION OF
(GRILLE
,REGISTER
,DIFFUSER
,EYEBALL
,IRIS
,LINEARGRILLE
,LINEARDIFFUSER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcAirToAirHeatRecoveryTypeEnum = ENUMERATION OF
(FIXEDPLATECOUNTERFLOWEXCHANGER
,FIXEDPLATECROSSFLOWEXCHANGER
,FIXEDPLATEPARALLELFLOWEXCHANGER
,ROTARYWHEEL
,RUNAROUNDCOILLOOP
,HEATPIPE
,TWINTOWERENTHALPYRECOVERYLOOPS
,THERMOSIPHONSEALEDTUBEHEATEXCHANGERS
,THERMOSIPHONCOILTYPEHEATEXCHANGERS
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcAlarmTypeEnum = ENUMERATION OF
(BELL
,BREAKGLASSBUTTON
,LIGHT
,MANUALPULLBOX
,SIREN
,WHISTLE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcAnalysisModelTypeEnum = ENUMERATION OF
(IN_PLANE_LOADING_2D
,OUT_PLANE_LOADING_2D
,LOADING_3D
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcAnalysisTheoryTypeEnum = ENUMERATION OF
(FIRST_ORDER_THEORY
,SECOND_ORDER_THEORY
,THIRD_ORDER_THEORY
,FULL_NONLINEAR_THEORY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcArithmeticOperatorEnum = ENUMERATION OF
(ADD
,DIVIDE
,MULTIPLY
,SUBTRACT);
END_TYPE;
TYPE IfcAssemblyPlaceEnum = ENUMERATION OF
(SITE
,FACTORY
,NOTDEFINED);
END_TYPE;
TYPE IfcBSplineCurveForm = ENUMERATION OF
(POLYLINE_FORM
,CIRCULAR_ARC
,ELLIPTIC_ARC
,PARABOLIC_ARC
,HYPERBOLIC_ARC
,UNSPECIFIED);
END_TYPE;
TYPE IfcBeamTypeEnum = ENUMERATION OF
(BEAM
,JOIST
,LINTEL
,T_BEAM
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcBenchmarkEnum = ENUMERATION OF
(GREATERTHAN
,GREATERTHANOREQUALTO
,LESSTHAN
,LESSTHANOREQUALTO
,EQUALTO
,NOTEQUALTO);
END_TYPE;
TYPE IfcBoilerTypeEnum = ENUMERATION OF
(WATER
,STEAM
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcBooleanOperator = ENUMERATION OF
(UNION
,INTERSECTION
,DIFFERENCE);
END_TYPE;
TYPE IfcBuildingElementProxyTypeEnum = ENUMERATION OF
(USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCableCarrierFittingTypeEnum = ENUMERATION OF
(BEND
,CROSS
,REDUCER
,TEE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCableCarrierSegmentTypeEnum = ENUMERATION OF
(CABLELADDERSEGMENT
,CABLETRAYSEGMENT
,CABLETRUNKINGSEGMENT
,CONDUITSEGMENT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCableSegmentTypeEnum = ENUMERATION OF
(CABLESEGMENT
,CONDUCTORSEGMENT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcChangeActionEnum = ENUMERATION OF
(NOCHANGE
,MODIFIED
,ADDED
,DELETED
,MODIFIEDADDED
,MODIFIEDDELETED);
END_TYPE;
TYPE IfcChillerTypeEnum = ENUMERATION OF
(AIRCOOLED
,WATERCOOLED
,HEATRECOVERY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCoilTypeEnum = ENUMERATION OF
(DXCOOLINGCOIL
,WATERCOOLINGCOIL
,STEAMHEATINGCOIL
,WATERHEATINGCOIL
,ELECTRICHEATINGCOIL
,GASHEATINGCOIL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcColumnTypeEnum = ENUMERATION OF
(COLUMN
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCompressorTypeEnum = ENUMERATION OF
(DYNAMIC
,RECIPROCATING
,ROTARY
,SCROLL
,TROCHOIDAL
,SINGLESTAGE
,BOOSTER
,OPENTYPE
,HERMETIC
,SEMIHERMETIC
,WELDEDSHELLHERMETIC
,ROLLINGPISTON
,ROTARYVANE
,SINGLESCREW
,TWINSCREW
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCondenserTypeEnum = ENUMERATION OF
(WATERCOOLEDSHELLTUBE
,WATERCOOLEDSHELLCOIL
,WATERCOOLEDTUBEINTUBE
,WATERCOOLEDBRAZEDPLATE
,AIRCOOLED
,EVAPORATIVECOOLED
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcConnectionTypeEnum = ENUMERATION OF
(ATPATH
,ATSTART
,ATEND
,NOTDEFINED);
END_TYPE;
TYPE IfcConstraintEnum = ENUMERATION OF
(HARD
,SOFT
,ADVISORY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcControllerTypeEnum = ENUMERATION OF
(FLOATING
,PROPORTIONAL
,PROPORTIONALINTEGRAL
,PROPORTIONALINTEGRALDERIVATIVE
,TIMEDTWOPOSITION
,TWOPOSITION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCooledBeamTypeEnum = ENUMERATION OF
(ACTIVE
,PASSIVE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCoolingTowerTypeEnum = ENUMERATION OF
(NATURALDRAFT
,MECHANICALINDUCEDDRAFT
,MECHANICALFORCEDDRAFT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCostScheduleTypeEnum = ENUMERATION OF
(BUDGET
,COSTPLAN
,ESTIMATE
,TENDER
,PRICEDBILLOFQUANTITIES
,UNPRICEDBILLOFQUANTITIES
,SCHEDULEOFRATES
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcCoveringTypeEnum = ENUMERATION OF
(CEILING
,FLOORING
,CLADDING
,ROOFING
,INSULATION
,MEMBRANE
,SLEEVING
,WRAPPING
,USERDEFINED
,NOTDEFINED);
END_TYPE;
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
,NOK);
END_TYPE;
TYPE IfcCurtainWallTypeEnum = ENUMERATION OF
(USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDamperTypeEnum = ENUMERATION OF
(CONTROLDAMPER
,FIREDAMPER
,SMOKEDAMPER
,FIRESMOKEDAMPER
,BACKDRAFTDAMPER
,RELIEFDAMPER
,BLASTDAMPER
,GRAVITYDAMPER
,GRAVITYRELIEFDAMPER
,BALANCINGDAMPER
,FUMEHOODEXHAUST
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDataOriginEnum = ENUMERATION OF
(MEASURED
,PREDICTED
,SIMULATED
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDerivedUnitEnum = ENUMERATION OF
(ANGULARVELOCITYUNIT
,COMPOUNDPLANEANGLEUNIT
,DYNAMICVISCOSITYUNIT
,HEATFLUXDENSITYUNIT
,INTEGERCOUNTRATEUNIT
,ISOTHERMALMOISTURECAPACITYUNIT
,KINEMATICVISCOSITYUNIT
,LINEARVELOCITYUNIT
,MASSDENSITYUNIT
,MASSFLOWRATEUNIT
,MOISTUREDIFFUSIVITYUNIT
,MOLECULARWEIGHTUNIT
,SPECIFICHEATCAPACITYUNIT
,THERMALADMITTANCEUNIT
,THERMALCONDUCTANCEUNIT
,THERMALRESISTANCEUNIT
,THERMALTRANSMITTANCEUNIT
,VAPORPERMEABILITYUNIT
,VOLUMETRICFLOWRATEUNIT
,ROTATIONALFREQUENCYUNIT
,TORQUEUNIT
,MOMENTOFINERTIAUNIT
,LINEARMOMENTUNIT
,LINEARFORCEUNIT
,PLANARFORCEUNIT
,MODULUSOFELASTICITYUNIT
,SHEARMODULUSUNIT
,LINEARSTIFFNESSUNIT
,ROTATIONALSTIFFNESSUNIT
,MODULUSOFSUBGRADEREACTIONUNIT
,ACCELERATIONUNIT
,CURVATUREUNIT
,HEATINGVALUEUNIT
,IONCONCENTRATIONUNIT
,LUMINOUSINTENSITYDISTRIBUTIONUNIT
,MASSPERLENGTHUNIT
,MODULUSOFLINEARSUBGRADEREACTIONUNIT
,MODULUSOFROTATIONALSUBGRADEREACTIONUNIT
,PHUNIT
,ROTATIONALMASSUNIT
,SECTIONAREAINTEGRALUNIT
,SECTIONMODULUSUNIT
,SOUNDPOWERUNIT
,SOUNDPRESSUREUNIT
,TEMPERATUREGRADIENTUNIT
,THERMALEXPANSIONCOEFFICIENTUNIT
,WARPINGCONSTANTUNIT
,WARPINGMOMENTUNIT
,USERDEFINED);
END_TYPE;
TYPE IfcDimensionExtentUsage = ENUMERATION OF
(ORIGIN
,TARGET);
END_TYPE;
TYPE IfcDirectionSenseEnum = ENUMERATION OF
(POSITIVE
,NEGATIVE);
END_TYPE;
TYPE IfcDistributionChamberElementTypeEnum = ENUMERATION OF
(FORMEDDUCT
,INSPECTIONCHAMBER
,INSPECTIONPIT
,MANHOLE
,METERCHAMBER
,SUMP
,TRENCH
,VALVECHAMBER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDocumentConfidentialityEnum = ENUMERATION OF
(PUBLIC
,RESTRICTED
,CONFIDENTIAL
,PERSONAL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDocumentStatusEnum = ENUMERATION OF
(DRAFT
,FINALDRAFT
,FINAL
,REVISION
,NOTDEFINED);
END_TYPE;
TYPE IfcDoorPanelOperationEnum = ENUMERATION OF
(SWINGING
,DOUBLE_ACTING
,SLIDING
,FOLDING
,REVOLVING
,ROLLINGUP
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDoorPanelPositionEnum = ENUMERATION OF
(LEFT
,MIDDLE
,RIGHT
,NOTDEFINED);
END_TYPE;
TYPE IfcDoorStyleConstructionEnum = ENUMERATION OF
(ALUMINIUM
,HIGH_GRADE_STEEL
,STEEL
,WOOD
,ALUMINIUM_WOOD
,ALUMINIUM_PLASTIC
,PLASTIC
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDoorStyleOperationEnum = ENUMERATION OF
(SINGLE_SWING_LEFT
,SINGLE_SWING_RIGHT
,DOUBLE_DOOR_SINGLE_SWING
,DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT
,DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT
,DOUBLE_SWING_LEFT
,DOUBLE_SWING_RIGHT
,DOUBLE_DOOR_DOUBLE_SWING
,SLIDING_TO_LEFT
,SLIDING_TO_RIGHT
,DOUBLE_DOOR_SLIDING
,FOLDING_TO_LEFT
,FOLDING_TO_RIGHT
,DOUBLE_DOOR_FOLDING
,REVOLVING
,ROLLINGUP
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDuctFittingTypeEnum = ENUMERATION OF
(BEND
,CONNECTOR
,ENTRY
,EXIT
,JUNCTION
,OBSTRUCTION
,TRANSITION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDuctSegmentTypeEnum = ENUMERATION OF
(RIGIDSEGMENT
,FLEXIBLESEGMENT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcDuctSilencerTypeEnum = ENUMERATION OF
(FLATOVAL
,RECTANGULAR
,ROUND
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricApplianceTypeEnum = ENUMERATION OF
(COMPUTER
,DIRECTWATERHEATER
,DISHWASHER
,ELECTRICCOOKER
,ELECTRICHEATER
,FACSIMILE
,FREESTANDINGFAN
,FREEZER
,FRIDGE_FREEZER
,HANDDRYER
,INDIRECTWATERHEATER
,MICROWAVE
,PHOTOCOPIER
,PRINTER
,REFRIGERATOR
,RADIANTHEATER
,SCANNER
,TELEPHONE
,TUMBLEDRYER
,TV
,VENDINGMACHINE
,WASHINGMACHINE
,WATERHEATER
,WATERCOOLER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricCurrentEnum = ENUMERATION OF
(ALTERNATING
,DIRECT
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricDistributionPointFunctionEnum = ENUMERATION OF
(ALARMPANEL
,CONSUMERUNIT
,CONTROLPANEL
,DISTRIBUTIONBOARD
,GASDETECTORPANEL
,INDICATORPANEL
,MIMICPANEL
,MOTORCONTROLCENTRE
,SWITCHBOARD
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricFlowStorageDeviceTypeEnum = ENUMERATION OF
(BATTERY
,CAPACITORBANK
,HARMONICFILTER
,INDUCTORBANK
,UPS
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricGeneratorTypeEnum = ENUMERATION OF
(USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricHeaterTypeEnum = ENUMERATION OF
(ELECTRICPOINTHEATER
,ELECTRICCABLEHEATER
,ELECTRICMATHEATER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricMotorTypeEnum = ENUMERATION OF
(DC
,INDUCTION
,POLYPHASE
,RELUCTANCESYNCHRONOUS
,SYNCHRONOUS
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElectricTimeControlTypeEnum = ENUMERATION OF
(TIMECLOCK
,TIMEDELAY
,RELAY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElementAssemblyTypeEnum = ENUMERATION OF
(ACCESSORY_ASSEMBLY
,ARCH
,BEAM_GRID
,BRACED_FRAME
,GIRDER
,REINFORCEMENT_UNIT
,RIGID_FRAME
,SLAB_FIELD
,TRUSS
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcElementCompositionEnum = ENUMERATION OF
(COMPLEX
,ELEMENT
,PARTIAL);
END_TYPE;
TYPE IfcEnergySequenceEnum = ENUMERATION OF
(PRIMARY
,SECONDARY
,TERTIARY
,AUXILIARY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcEnvironmentalImpactCategoryEnum = ENUMERATION OF
(COMBINEDVALUE
,DISPOSAL
,EXTRACTION
,INSTALLATION
,MANUFACTURE
,TRANSPORTATION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcEvaporativeCoolerTypeEnum = ENUMERATION OF
(DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER
,DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER
,DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER
,DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER
,DIRECTEVAPORATIVEAIRWASHER
,INDIRECTEVAPORATIVEPACKAGEAIRCOOLER
,INDIRECTEVAPORATIVEWETCOIL
,INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER
,INDIRECTDIRECTCOMBINATION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcEvaporatorTypeEnum = ENUMERATION OF
(DIRECTEXPANSIONSHELLANDTUBE
,DIRECTEXPANSIONTUBEINTUBE
,DIRECTEXPANSIONBRAZEDPLATE
,FLOODEDSHELLANDTUBE
,SHELLANDCOIL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcFanTypeEnum = ENUMERATION OF
(CENTRIFUGALFORWARDCURVED
,CENTRIFUGALRADIAL
,CENTRIFUGALBACKWARDINCLINEDCURVED
,CENTRIFUGALAIRFOIL
,TUBEAXIAL
,VANEAXIAL
,PROPELLORAXIAL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcFilterTypeEnum = ENUMERATION OF
(AIRPARTICLEFILTER
,ODORFILTER
,OILFILTER
,STRAINER
,WATERFILTER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcFireSuppressionTerminalTypeEnum = ENUMERATION OF
(BREECHINGINLET
,FIREHYDRANT
,HOSEREEL
,SPRINKLER
,SPRINKLERDEFLECTOR
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcFlowDirectionEnum = ENUMERATION OF
(SOURCE
,SINK
,SOURCEANDSINK
,NOTDEFINED);
END_TYPE;
TYPE IfcFlowInstrumentTypeEnum = ENUMERATION OF
(PRESSUREGAUGE
,THERMOMETER
,AMMETER
,FREQUENCYMETER
,POWERFACTORMETER
,PHASEANGLEMETER
,VOLTMETER_PEAK
,VOLTMETER_RMS
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcFlowMeterTypeEnum = ENUMERATION OF
(ELECTRICMETER
,ENERGYMETER
,FLOWMETER
,GASMETER
,OILMETER
,WATERMETER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcFootingTypeEnum = ENUMERATION OF
(FOOTING_BEAM
,PAD_FOOTING
,PILE_CAP
,STRIP_FOOTING
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcGasTerminalTypeEnum = ENUMERATION OF
(GASAPPLIANCE
,GASBOOSTER
,GASBURNER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcGeometricProjectionEnum = ENUMERATION OF
(GRAPH_VIEW
,SKETCH_VIEW
,MODEL_VIEW
,PLAN_VIEW
,REFLECTED_PLAN_VIEW
,SECTION_VIEW
,ELEVATION_VIEW
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcGlobalOrLocalEnum = ENUMERATION OF
(GLOBAL_COORDS
,LOCAL_COORDS);
END_TYPE;
TYPE IfcHeatExchangerTypeEnum = ENUMERATION OF
(PLATE
,SHELLANDTUBE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcHumidifierTypeEnum = ENUMERATION OF
(STEAMINJECTION
,ADIABATICAIRWASHER
,ADIABATICPAN
,ADIABATICWETTEDELEMENT
,ADIABATICATOMIZING
,ADIABATICULTRASONIC
,ADIABATICRIGIDMEDIA
,ADIABATICCOMPRESSEDAIRNOZZLE
,ASSISTEDELECTRIC
,ASSISTEDNATURALGAS
,ASSISTEDPROPANE
,ASSISTEDBUTANE
,ASSISTEDSTEAM
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcInternalOrExternalEnum = ENUMERATION OF
(INTERNAL
,EXTERNAL
,NOTDEFINED);
END_TYPE;
TYPE IfcInventoryTypeEnum = ENUMERATION OF
(ASSETINVENTORY
,SPACEINVENTORY
,FURNITUREINVENTORY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcJunctionBoxTypeEnum = ENUMERATION OF
(USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcLampTypeEnum = ENUMERATION OF
(COMPACTFLUORESCENT
,FLUORESCENT
,HIGHPRESSUREMERCURY
,HIGHPRESSURESODIUM
,METALHALIDE
,TUNGSTENFILAMENT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcLayerSetDirectionEnum = ENUMERATION OF
(AXIS1
,AXIS2
,AXIS3);
END_TYPE;
TYPE IfcLightDistributionCurveEnum = ENUMERATION OF
(TYPE_A
,TYPE_B
,TYPE_C
,NOTDEFINED);
END_TYPE;
TYPE IfcLightEmissionSourceEnum = ENUMERATION OF
(COMPACTFLUORESCENT
,FLUORESCENT
,HIGHPRESSUREMERCURY
,HIGHPRESSURESODIUM
,LIGHTEMITTINGDIODE
,LOWPRESSURESODIUM
,LOWVOLTAGEHALOGEN
,MAINVOLTAGEHALOGEN
,METALHALIDE
,TUNGSTENFILAMENT
,NOTDEFINED);
END_TYPE;
TYPE IfcLightFixtureTypeEnum = ENUMERATION OF
(POINTSOURCE
,DIRECTIONSOURCE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcLoadGroupTypeEnum = ENUMERATION OF
(LOAD_GROUP
,LOAD_CASE
,LOAD_COMBINATION_GROUP
,LOAD_COMBINATION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcLogicalOperatorEnum = ENUMERATION OF
(LOGICALAND
,LOGICALOR);
END_TYPE;
TYPE IfcMemberTypeEnum = ENUMERATION OF
(BRACE
,CHORD
,COLLAR
,MEMBER
,MULLION
,PLATE
,POST
,PURLIN
,RAFTER
,STRINGER
,STRUT
,STUD
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcMotorConnectionTypeEnum = ENUMERATION OF
(BELTDRIVE
,COUPLING
,DIRECTDRIVE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcNullStyle = ENUMERATION OF
(NULL);
END_TYPE;
TYPE IfcObjectTypeEnum = ENUMERATION OF
(PRODUCT
,PROCESS
,CONTROL
,RESOURCE
,ACTOR
,GROUP
,PROJECT
,NOTDEFINED);
END_TYPE;
TYPE IfcObjectiveEnum = ENUMERATION OF
(CODECOMPLIANCE
,DESIGNINTENT
,HEALTHANDSAFETY
,REQUIREMENT
,SPECIFICATION
,TRIGGERCONDITION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcOccupantTypeEnum = ENUMERATION OF
(ASSIGNEE
,ASSIGNOR
,LESSEE
,LESSOR
,LETTINGAGENT
,OWNER
,TENANT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcOutletTypeEnum = ENUMERATION OF
(AUDIOVISUALOUTLET
,COMMUNICATIONSOUTLET
,POWEROUTLET
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcPermeableCoveringOperationEnum = ENUMERATION OF
(GRILL
,LOUVER
,SCREEN
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcPhysicalOrVirtualEnum = ENUMERATION OF
(PHYSICAL
,VIRTUAL
,NOTDEFINED);
END_TYPE;
TYPE IfcPileConstructionEnum = ENUMERATION OF
(CAST_IN_PLACE
,COMPOSITE
,PRECAST_CONCRETE
,PREFAB_STEEL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcPileTypeEnum = ENUMERATION OF
(COHESION
,FRICTION
,SUPPORT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcPipeFittingTypeEnum = ENUMERATION OF
(BEND
,CONNECTOR
,ENTRY
,EXIT
,JUNCTION
,OBSTRUCTION
,TRANSITION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcPipeSegmentTypeEnum = ENUMERATION OF
(FLEXIBLESEGMENT
,RIGIDSEGMENT
,GUTTER
,SPOOL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcPlateTypeEnum = ENUMERATION OF
(CURTAIN_PANEL
,SHEET
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcProcedureTypeEnum = ENUMERATION OF
(ADVICE_CAUTION
,ADVICE_NOTE
,ADVICE_WARNING
,CALIBRATION
,DIAGNOSTIC
,SHUTDOWN
,STARTUP
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcProfileTypeEnum = ENUMERATION OF
(CURVE
,AREA);
END_TYPE;
TYPE IfcProjectOrderRecordTypeEnum = ENUMERATION OF
(CHANGE
,MAINTENANCE
,MOVE
,PURCHASE
,WORK
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcProjectOrderTypeEnum = ENUMERATION OF
(CHANGEORDER
,MAINTENANCEWORKORDER
,MOVEORDER
,PURCHASEORDER
,WORKORDER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcProjectedOrTrueLengthEnum = ENUMERATION OF
(PROJECTED_LENGTH
,TRUE_LENGTH);
END_TYPE;
TYPE IfcPropertySourceEnum = ENUMERATION OF
(DESIGN
,DESIGNMAXIMUM
,DESIGNMINIMUM
,SIMULATED
,ASBUILT
,COMMISSIONING
,MEASURED
,USERDEFINED
,NOTKNOWN);
END_TYPE;
TYPE IfcProtectiveDeviceTypeEnum = ENUMERATION OF
(FUSEDISCONNECTOR
,CIRCUITBREAKER
,EARTHFAILUREDEVICE
,RESIDUALCURRENTCIRCUITBREAKER
,RESIDUALCURRENTSWITCH
,VARISTOR
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcPumpTypeEnum = ENUMERATION OF
(CIRCULATOR
,ENDSUCTION
,SPLITCASE
,VERTICALINLINE
,VERTICALTURBINE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcRailingTypeEnum = ENUMERATION OF
(HANDRAIL
,GUARDRAIL
,BALUSTRADE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcRampFlightTypeEnum = ENUMERATION OF
(STRAIGHT
,SPIRAL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcRampTypeEnum = ENUMERATION OF
(STRAIGHT_RUN_RAMP
,TWO_STRAIGHT_RUN_RAMP
,QUARTER_TURN_RAMP
,TWO_QUARTER_TURN_RAMP
,HALF_TURN_RAMP
,SPIRAL_RAMP
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcReflectanceMethodEnum = ENUMERATION OF
(BLINN
,FLAT
,GLASS
,MATT
,METAL
,MIRROR
,PHONG
,PLASTIC
,STRAUSS
,NOTDEFINED);
END_TYPE;
TYPE IfcReinforcingBarRoleEnum = ENUMERATION OF
(MAIN
,SHEAR
,LIGATURE
,STUD
,PUNCHING
,EDGE
,RING
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcReinforcingBarSurfaceEnum = ENUMERATION OF
(PLAIN
,TEXTURED);
END_TYPE;
TYPE IfcResourceConsumptionEnum = ENUMERATION OF
(CONSUMED
,PARTIALLYCONSUMED
,NOTCONSUMED
,OCCUPIED
,PARTIALLYOCCUPIED
,NOTOCCUPIED
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcRibPlateDirectionEnum = ENUMERATION OF
(DIRECTION_X
,DIRECTION_Y);
END_TYPE;
TYPE IfcRoleEnum = ENUMERATION OF
(SUPPLIER
,MANUFACTURER
,CONTRACTOR
,SUBCONTRACTOR
,ARCHITECT
,STRUCTURALENGINEER
,COSTENGINEER
,CLIENT
,BUILDINGOWNER
,BUILDINGOPERATOR
,MECHANICALENGINEER
,ELECTRICALENGINEER
,PROJECTMANAGER
,FACILITIESMANAGER
,CIVILENGINEER
,COMISSIONINGENGINEER
,ENGINEER
,OWNER
,CONSULTANT
,CONSTRUCTIONMANAGER
,FIELDCONSTRUCTIONMANAGER
,RESELLER
,USERDEFINED);
END_TYPE;
TYPE IfcRoofTypeEnum = ENUMERATION OF
(FLAT_ROOF
,SHED_ROOF
,GABLE_ROOF
,HIP_ROOF
,HIPPED_GABLE_ROOF
,GAMBREL_ROOF
,MANSARD_ROOF
,BARREL_ROOF
,RAINBOW_ROOF
,BUTTERFLY_ROOF
,PAVILION_ROOF
,DOME_ROOF
,FREEFORM
,NOTDEFINED);
END_TYPE;
TYPE IfcSIPrefix = ENUMERATION OF
(EXA
,PETA
,TERA
,GIGA
,MEGA
,KILO
,HECTO
,DECA
,DECI
,CENTI
,MILLI
,MICRO
,NANO
,PICO
,FEMTO
,ATTO);
END_TYPE;
TYPE IfcSIUnitName = ENUMERATION OF
(AMPERE
,BECQUEREL
,CANDELA
,COULOMB
,CUBIC_METRE
,DEGREE_CELSIUS
,FARAD
,GRAM
,GRAY
,HENRY
,HERTZ
,JOULE
,KELVIN
,LUMEN
,LUX
,METRE
,MOLE
,NEWTON
,OHM
,PASCAL
,RADIAN
,SECOND
,SIEMENS
,SIEVERT
,SQUARE_METRE
,STERADIAN
,TESLA
,VOLT
,WATT
,WEBER);
END_TYPE;
TYPE IfcSanitaryTerminalTypeEnum = ENUMERATION OF
(BATH
,BIDET
,CISTERN
,SHOWER
,SINK
,SANITARYFOUNTAIN
,TOILETPAN
,URINAL
,WASHHANDBASIN
,WCSEAT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcSectionTypeEnum = ENUMERATION OF
(UNIFORM
,TAPERED);
END_TYPE;
TYPE IfcSensorTypeEnum = ENUMERATION OF
(CO2SENSOR
,FIRESENSOR
,FLOWSENSOR
,GASSENSOR
,HEATSENSOR
,HUMIDITYSENSOR
,LIGHTSENSOR
,MOISTURESENSOR
,MOVEMENTSENSOR
,PRESSURESENSOR
,SMOKESENSOR
,SOUNDSENSOR
,TEMPERATURESENSOR
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcSequenceEnum = ENUMERATION OF
(START_START
,START_FINISH
,FINISH_START
,FINISH_FINISH
,NOTDEFINED);
END_TYPE;
TYPE IfcServiceLifeFactorTypeEnum = ENUMERATION OF
(A_QUALITYOFCOMPONENTS
,B_DESIGNLEVEL
,C_WORKEXECUTIONLEVEL
,D_INDOORENVIRONMENT
,E_OUTDOORENVIRONMENT
,F_INUSECONDITIONS
,G_MAINTENANCELEVEL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcServiceLifeTypeEnum = ENUMERATION OF
(ACTUALSERVICELIFE
,EXPECTEDSERVICELIFE
,OPTIMISTICREFERENCESERVICELIFE
,PESSIMISTICREFERENCESERVICELIFE
,REFERENCESERVICELIFE);
END_TYPE;
TYPE IfcSlabTypeEnum = ENUMERATION OF
(FLOOR
,ROOF
,LANDING
,BASESLAB
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcSoundScaleEnum = ENUMERATION OF
(DBA
,DBB
,DBC
,NC
,NR
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcSpaceHeaterTypeEnum = ENUMERATION OF
(SECTIONALRADIATOR
,PANELRADIATOR
,TUBULARRADIATOR
,CONVECTOR
,BASEBOARDHEATER
,FINNEDTUBEUNIT
,UNITHEATER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcSpaceTypeEnum = ENUMERATION OF
(USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcStackTerminalTypeEnum = ENUMERATION OF
(BIRDCAGE
,COWL
,RAINWATERHOPPER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcStairFlightTypeEnum = ENUMERATION OF
(STRAIGHT
,WINDER
,SPIRAL
,CURVED
,FREEFORM
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcStairTypeEnum = ENUMERATION OF
(STRAIGHT_RUN_STAIR
,TWO_STRAIGHT_RUN_STAIR
,QUARTER_WINDING_STAIR
,QUARTER_TURN_STAIR
,HALF_WINDING_STAIR
,HALF_TURN_STAIR
,TWO_QUARTER_WINDING_STAIR
,TWO_QUARTER_TURN_STAIR
,THREE_QUARTER_WINDING_STAIR
,THREE_QUARTER_TURN_STAIR
,SPIRAL_STAIR
,DOUBLE_RETURN_STAIR
,CURVED_RUN_STAIR
,TWO_CURVED_RUN_STAIR
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcStateEnum = ENUMERATION OF
(READWRITE
,READONLY
,LOCKED
,READWRITELOCKED
,READONLYLOCKED);
END_TYPE;
TYPE IfcStructuralCurveTypeEnum = ENUMERATION OF
(RIGID_JOINED_MEMBER
,PIN_JOINED_MEMBER
,CABLE
,TENSION_MEMBER
,COMPRESSION_MEMBER
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcStructuralSurfaceTypeEnum = ENUMERATION OF
(BENDING_ELEMENT
,MEMBRANE_ELEMENT
,SHELL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcSurfaceSide = ENUMERATION OF
(POSITIVE
,NEGATIVE
,BOTH);
END_TYPE;
TYPE IfcSurfaceTextureEnum = ENUMERATION OF
(BUMP
,OPACITY
,REFLECTION
,SELFILLUMINATION
,SHININESS
,SPECULAR
,TEXTURE
,TRANSPARENCYMAP
,NOTDEFINED);
END_TYPE;
TYPE IfcSwitchingDeviceTypeEnum = ENUMERATION OF
(CONTACTOR
,EMERGENCYSTOP
,STARTER
,SWITCHDISCONNECTOR
,TOGGLESWITCH
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcTankTypeEnum = ENUMERATION OF
(PREFORMED
,SECTIONAL
,EXPANSION
,PRESSUREVESSEL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcTendonTypeEnum = ENUMERATION OF
(STRAND
,WIRE
,BAR
,COATED
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcTextPath = ENUMERATION OF
(LEFT
,RIGHT
,UP
,DOWN);
END_TYPE;
TYPE IfcThermalLoadSourceEnum = ENUMERATION OF
(PEOPLE
,LIGHTING
,EQUIPMENT
,VENTILATIONINDOORAIR
,VENTILATIONOUTSIDEAIR
,RECIRCULATEDAIR
,EXHAUSTAIR
,AIREXCHANGERATE
,DRYBULBTEMPERATURE
,RELATIVEHUMIDITY
,INFILTRATION
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcThermalLoadTypeEnum = ENUMERATION OF
(SENSIBLE
,LATENT
,RADIANT
,NOTDEFINED);
END_TYPE;
TYPE IfcTimeSeriesDataTypeEnum = ENUMERATION OF
(CONTINUOUS
,DISCRETE
,DISCRETEBINARY
,PIECEWISEBINARY
,PIECEWISECONSTANT
,PIECEWISECONTINUOUS
,NOTDEFINED);
END_TYPE;
TYPE IfcTimeSeriesScheduleTypeEnum = ENUMERATION OF
(ANNUAL
,MONTHLY
,WEEKLY
,DAILY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcTransformerTypeEnum = ENUMERATION OF
(CURRENT
,FREQUENCY
,VOLTAGE
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcTransitionCode = ENUMERATION OF
(DISCONTINUOUS
,CONTINUOUS
,CONTSAMEGRADIENT
,CONTSAMEGRADIENTSAMECURVATURE);
END_TYPE;
TYPE IfcTransportElementTypeEnum = ENUMERATION OF
(ELEVATOR
,ESCALATOR
,MOVINGWALKWAY
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcTrimmingPreference = ENUMERATION OF
(CARTESIAN
,PARAMETER
,UNSPECIFIED);
END_TYPE;
TYPE IfcTubeBundleTypeEnum = ENUMERATION OF
(FINNED
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcUnitEnum = ENUMERATION OF
(ABSORBEDDOSEUNIT
,AMOUNTOFSUBSTANCEUNIT
,AREAUNIT
,DOSEEQUIVALENTUNIT
,ELECTRICCAPACITANCEUNIT
,ELECTRICCHARGEUNIT
,ELECTRICCONDUCTANCEUNIT
,ELECTRICCURRENTUNIT
,ELECTRICRESISTANCEUNIT
,ELECTRICVOLTAGEUNIT
,ENERGYUNIT
,FORCEUNIT
,FREQUENCYUNIT
,ILLUMINANCEUNIT
,INDUCTANCEUNIT
,LENGTHUNIT
,LUMINOUSFLUXUNIT
,LUMINOUSINTENSITYUNIT
,MAGNETICFLUXDENSITYUNIT
,MAGNETICFLUXUNIT
,MASSUNIT
,PLANEANGLEUNIT
,POWERUNIT
,PRESSUREUNIT
,RADIOACTIVITYUNIT
,SOLIDANGLEUNIT
,THERMODYNAMICTEMPERATUREUNIT
,TIMEUNIT
,VOLUMEUNIT
,USERDEFINED);
END_TYPE;
TYPE IfcUnitaryEquipmentTypeEnum = ENUMERATION OF
(AIRHANDLER
,AIRCONDITIONINGUNIT
,SPLITSYSTEM
,ROOFTOPUNIT
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcValveTypeEnum = ENUMERATION OF
(AIRRELEASE
,ANTIVACUUM
,CHANGEOVER
,CHECK
,COMMISSIONING
,DIVERTING
,DRAWOFFCOCK
,DOUBLECHECK
,DOUBLEREGULATING
,FAUCET
,FLUSHING
,GASCOCK
,GASTAP
,ISOLATING
,MIXING
,PRESSUREREDUCING
,PRESSURERELIEF
,REGULATING
,SAFETYCUTOFF
,STEAMTRAP
,STOPCOCK
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcVibrationIsolatorTypeEnum = ENUMERATION OF
(COMPRESSION
,SPRING
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcWallTypeEnum = ENUMERATION OF
(STANDARD
,POLYGONAL
,SHEAR
,ELEMENTEDWALL
,PLUMBINGWALL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcWasteTerminalTypeEnum = ENUMERATION OF
(FLOORTRAP
,FLOORWASTE
,GULLYSUMP
,GULLYTRAP
,GREASEINTERCEPTOR
,OILINTERCEPTOR
,PETROLINTERCEPTOR
,ROOFDRAIN
,WASTEDISPOSALUNIT
,WASTETRAP
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcWindowPanelOperationEnum = ENUMERATION OF
(SIDEHUNGRIGHTHAND
,SIDEHUNGLEFTHAND
,TILTANDTURNRIGHTHAND
,TILTANDTURNLEFTHAND
,TOPHUNG
,BOTTOMHUNG
,PIVOTHORIZONTAL
,PIVOTVERTICAL
,SLIDINGHORIZONTAL
,SLIDINGVERTICAL
,REMOVABLECASEMENT
,FIXEDCASEMENT
,OTHEROPERATION
,NOTDEFINED);
END_TYPE;
TYPE IfcWindowPanelPositionEnum = ENUMERATION OF
(LEFT
,MIDDLE
,RIGHT
,BOTTOM
,TOP
,NOTDEFINED);
END_TYPE;
TYPE IfcWindowStyleConstructionEnum = ENUMERATION OF
(ALUMINIUM
,HIGH_GRADE_STEEL
,STEEL
,WOOD
,ALUMINIUM_WOOD
,PLASTIC
,OTHER_CONSTRUCTION
,NOTDEFINED);
END_TYPE;
TYPE IfcWindowStyleOperationEnum = ENUMERATION OF
(SINGLE_PANEL
,DOUBLE_PANEL_VERTICAL
,DOUBLE_PANEL_HORIZONTAL
,TRIPLE_PANEL_VERTICAL
,TRIPLE_PANEL_BOTTOM
,TRIPLE_PANEL_TOP
,TRIPLE_PANEL_LEFT
,TRIPLE_PANEL_RIGHT
,TRIPLE_PANEL_HORIZONTAL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcWorkControlTypeEnum = ENUMERATION OF
(ACTUAL
,BASELINE
,PLANNED
,USERDEFINED
,NOTDEFINED);
END_TYPE;
TYPE IfcActorSelect = SELECT
(IfcOrganization
,IfcPerson
,IfcPersonAndOrganization);
END_TYPE;
TYPE IfcAppliedValueSelect = SELECT
(IfcRatioMeasure
,IfcMeasureWithUnit
,IfcMonetaryMeasure);
END_TYPE;
TYPE IfcAxis2Placement = SELECT
(IfcAxis2Placement2D
,IfcAxis2Placement3D);
END_TYPE;
TYPE IfcBooleanOperand = SELECT
(IfcSolidModel
,IfcHalfSpaceSolid
,IfcBooleanResult
,IfcCsgPrimitive3D);
END_TYPE;
TYPE IfcCharacterStyleSelect = SELECT
(IfcTextStyleForDefinedFont);
END_TYPE;
TYPE IfcClassificationNotationSelect = SELECT
(IfcClassificationNotation
,IfcClassificationReference);
END_TYPE;
TYPE IfcColour = SELECT
(IfcColourSpecification
,IfcPreDefinedColour);
END_TYPE;
TYPE IfcColourOrFactor = SELECT
(IfcColourRgb
,IfcNormalisedRatioMeasure);
END_TYPE;
TYPE IfcConditionCriterionSelect = SELECT
(IfcLabel
,IfcMeasureWithUnit);
END_TYPE;
TYPE IfcCsgSelect = SELECT
(IfcBooleanResult
,IfcCsgPrimitive3D);
END_TYPE;
TYPE IfcCurveFontOrScaledCurveFontSelect = SELECT
(IfcCurveStyleFontSelect
,IfcCurveStyleFontAndScaling);
END_TYPE;
TYPE IfcCurveOrEdgeCurve = SELECT
(IfcBoundedCurve
,IfcEdgeCurve);
END_TYPE;
TYPE IfcCurveStyleFontSelect = SELECT
(IfcPreDefinedCurveFont
,IfcCurveStyleFont);
END_TYPE;
TYPE IfcDateTimeSelect = SELECT
(IfcCalendarDate
,IfcLocalTime
,IfcDateAndTime);
END_TYPE;
TYPE IfcDefinedSymbolSelect = SELECT
(IfcPreDefinedSymbol
,IfcExternallyDefinedSymbol);
END_TYPE;
TYPE IfcDerivedMeasureValue = SELECT
(IfcVolumetricFlowRateMeasure
,IfcTimeStamp
,IfcThermalTransmittanceMeasure
,IfcThermalResistanceMeasure
,IfcThermalAdmittanceMeasure
,IfcPressureMeasure
,IfcPowerMeasure
,IfcMassFlowRateMeasure
,IfcMassDensityMeasure
,IfcLinearVelocityMeasure
,IfcKinematicViscosityMeasure
,IfcIntegerCountRateMeasure
,IfcHeatFluxDensityMeasure
,IfcFrequencyMeasure
,IfcEnergyMeasure
,IfcElectricVoltageMeasure
,IfcDynamicViscosityMeasure
,IfcCompoundPlaneAngleMeasure
,IfcAngularVelocityMeasure
,IfcThermalConductivityMeasure
,IfcMolecularWeightMeasure
,IfcVaporPermeabilityMeasure
,IfcMoistureDiffusivityMeasure
,IfcIsothermalMoistureCapacityMeasure
,IfcSpecificHeatCapacityMeasure
,IfcMonetaryMeasure
,IfcMagneticFluxDensityMeasure
,IfcMagneticFluxMeasure
,IfcLuminousFluxMeasure
,IfcForceMeasure
,IfcInductanceMeasure
,IfcIlluminanceMeasure
,IfcElectricResistanceMeasure
,IfcElectricConductanceMeasure
,IfcElectricChargeMeasure
,IfcDoseEquivalentMeasure
,IfcElectricCapacitanceMeasure
,IfcAbsorbedDoseMeasure
,IfcRadioActivityMeasure
,IfcRotationalFrequencyMeasure
,IfcTorqueMeasure
,IfcAccelerationMeasure
,IfcLinearForceMeasure
,IfcLinearStiffnessMeasure
,IfcModulusOfSubgradeReactionMeasure
,IfcModulusOfElasticityMeasure
,IfcMomentOfInertiaMeasure
,IfcPlanarForceMeasure
,IfcRotationalStiffnessMeasure
,IfcShearModulusMeasure
,IfcLinearMomentMeasure
,IfcLuminousIntensityDistributionMeasure
,IfcCurvatureMeasure
,IfcMassPerLengthMeasure
,IfcModulusOfLinearSubgradeReactionMeasure
,IfcModulusOfRotationalSubgradeReactionMeasure
,IfcRotationalMassMeasure
,IfcSectionalAreaIntegralMeasure
,IfcSectionModulusMeasure
,IfcTemperatureGradientMeasure
,IfcThermalExpansionCoefficientMeasure
,IfcWarpingConstantMeasure
,IfcWarpingMomentMeasure
,IfcSoundPowerMeasure
,IfcSoundPressureMeasure
,IfcHeatingValueMeasure
,IfcPHMeasure
,IfcIonConcentrationMeasure);
END_TYPE;
TYPE IfcDocumentSelect = SELECT
(IfcDocumentReference
,IfcDocumentInformation);
END_TYPE;
TYPE IfcDraughtingCalloutElement = SELECT
(IfcAnnotationCurveOccurrence
,IfcAnnotationTextOccurrence
,IfcAnnotationSymbolOccurrence);
END_TYPE;
TYPE IfcFillAreaStyleTileShapeSelect = SELECT
(IfcFillAreaStyleTileSymbolWithStyle);
END_TYPE;
TYPE IfcFillStyleSelect = SELECT
(IfcFillAreaStyleHatching
,IfcFillAreaStyleTiles
,IfcColour
,IfcExternallyDefinedHatchStyle);
END_TYPE;
TYPE IfcGeometricSetSelect = SELECT
(IfcPoint
,IfcCurve
,IfcSurface);
END_TYPE;
TYPE IfcHatchLineDistanceSelect = SELECT
(IfcOneDirectionRepeatFactor
,IfcPositiveLengthMeasure);
END_TYPE;
TYPE IfcLayeredItem = SELECT
(IfcRepresentationItem
,IfcRepresentation);
END_TYPE;
TYPE IfcLibrarySelect = SELECT
(IfcLibraryReference
,IfcLibraryInformation);
END_TYPE;
TYPE IfcLightDistributionDataSourceSelect = SELECT
(IfcExternalReference
,IfcLightIntensityDistribution);
END_TYPE;
TYPE IfcMaterialSelect = SELECT
(IfcMaterial
,IfcMaterialList
,IfcMaterialLayerSetUsage
,IfcMaterialLayerSet
,IfcMaterialLayer);
END_TYPE;
TYPE IfcMeasureValue = SELECT
(IfcVolumeMeasure
,IfcTimeMeasure
,IfcThermodynamicTemperatureMeasure
,IfcSolidAngleMeasure
,IfcPositiveRatioMeasure
,IfcRatioMeasure
,IfcPositivePlaneAngleMeasure
,IfcPlaneAngleMeasure
,IfcParameterValue
,IfcNumericMeasure
,IfcMassMeasure
,IfcPositiveLengthMeasure
,IfcLengthMeasure
,IfcElectricCurrentMeasure
,IfcDescriptiveMeasure
,IfcCountMeasure
,IfcContextDependentMeasure
,IfcAreaMeasure
,IfcAmountOfSubstanceMeasure
,IfcLuminousIntensityMeasure
,IfcNormalisedRatioMeasure
,IfcComplexNumber);
END_TYPE;
TYPE IfcMetricValueSelect = SELECT
(IfcDateTimeSelect
,IfcMeasureWithUnit
,IfcTable
,IfcText
,IfcTimeSeries
,IfcCostValue);
END_TYPE;
TYPE IfcObjectReferenceSelect = SELECT
(IfcMaterial
,IfcPerson
,IfcDateAndTime
,IfcMaterialList
,IfcOrganization
,IfcCalendarDate
,IfcLocalTime
,IfcPersonAndOrganization
,IfcMaterialLayer
,IfcExternalReference
,IfcTimeSeries
,IfcAddress
,IfcAppliedValue);
END_TYPE;
TYPE IfcOrientationSelect = SELECT
(IfcPlaneAngleMeasure
,IfcDirection);
END_TYPE;
TYPE IfcPointOrVertexPoint = SELECT
(IfcPoint
,IfcVertexPoint);
END_TYPE;
TYPE IfcPresentationStyleSelect = SELECT
(IfcNullStyle
,IfcCurveStyle
,IfcSymbolStyle
,IfcFillAreaStyle
,IfcTextStyle
,IfcSurfaceStyle);
END_TYPE;
TYPE IfcShell = SELECT
(IfcClosedShell
,IfcOpenShell);
END_TYPE;
TYPE IfcSimpleValue = SELECT
(IfcInteger
,IfcReal
,IfcBoolean
,IfcIdentifier
,IfcText
,IfcLabel
,IfcLogical);
END_TYPE;
TYPE IfcSizeSelect = SELECT
(IfcRatioMeasure
,IfcLengthMeasure
,IfcDescriptiveMeasure
,IfcPositiveLengthMeasure
,IfcNormalisedRatioMeasure
,IfcPositiveRatioMeasure);
END_TYPE;
TYPE IfcSpecularHighlightSelect = SELECT
(IfcSpecularExponent
,IfcSpecularRoughness);
END_TYPE;
TYPE IfcStructuralActivityAssignmentSelect = SELECT
(IfcStructuralItem
,IfcElement);
END_TYPE;
TYPE IfcSurfaceOrFaceSurface = SELECT
(IfcSurface
,IfcFaceSurface
,IfcFaceBasedSurfaceModel);
END_TYPE;
TYPE IfcSurfaceStyleElementSelect = SELECT
(IfcSurfaceStyleShading
,IfcSurfaceStyleLighting
,IfcSurfaceStyleWithTextures
,IfcExternallyDefinedSurfaceStyle
,IfcSurfaceStyleRefraction);
END_TYPE;
TYPE IfcSymbolStyleSelect = SELECT
(IfcColour);
END_TYPE;
TYPE IfcTextFontSelect = SELECT
(IfcPreDefinedTextFont
,IfcExternallyDefinedTextFont);
END_TYPE;
TYPE IfcTextStyleSelect = SELECT
(IfcTextStyleWithBoxCharacteristics
,IfcTextStyleTextModel);
END_TYPE;
TYPE IfcTrimmingSelect = SELECT
(IfcCartesianPoint
,IfcParameterValue);
END_TYPE;
TYPE IfcUnit = SELECT
(IfcDerivedUnit
,IfcNamedUnit
,IfcMonetaryUnit);
END_TYPE;
TYPE IfcValue = SELECT
(IfcMeasureValue
,IfcSimpleValue
,IfcDerivedMeasureValue);
END_TYPE;
TYPE IfcVectorOrDirection = SELECT
(IfcDirection
,IfcVector);
END_TYPE;
ENTITY Ifc2DCompositeCurve
SUBTYPE OF (IfcCompositeCurve);
WHERE
WR1 : SELF\IfcCompositeCurve.ClosedCurve;
WR2 : SELF\IfcCurve.Dim = 2;
END_ENTITY;
ENTITY IfcActionRequest
SUBTYPE OF (IfcControl);
RequestID : IfcIdentifier;
UNIQUE
UR2 : RequestID;
END_ENTITY;
ENTITY IfcActor
SUPERTYPE OF (ONEOF
(IfcOccupant))
SUBTYPE OF (IfcObject);
TheActor : IfcActorSelect;
INVERSE
IsActingUpon : SET [0:?] OF IfcRelAssignsToActor FOR RelatingActor;
END_ENTITY;
ENTITY IfcActorRole;
Role : IfcRoleEnum;
UserDefinedRole : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
WHERE
WR1 : (Role <> IfcRoleEnum.USERDEFINED) OR
((Role = IfcRoleEnum.USERDEFINED) AND
EXISTS(SELF.UserDefinedRole));
END_ENTITY;
ENTITY IfcActuatorType
SUBTYPE OF (IfcDistributionControlElementType);
PredefinedType : IfcActuatorTypeEnum;
END_ENTITY;
ENTITY IfcAddress
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPostalAddress
,IfcTelecomAddress));
Purpose : OPTIONAL IfcAddressTypeEnum;
Description : OPTIONAL IfcText;
UserDefinedPurpose : OPTIONAL IfcLabel;
INVERSE
OfPerson : SET [0:?] OF IfcPerson FOR Addresses;
OfOrganization : SET [0:?] OF IfcOrganization FOR Addresses;
WHERE
WR1 : (NOT(EXISTS(Purpose))) OR
((Purpose <> IfcAddressTypeEnum.USERDEFINED) OR
((Purpose = IfcAddressTypeEnum.USERDEFINED) AND
EXISTS(SELF.UserDefinedPurpose)));
END_ENTITY;
ENTITY IfcAirTerminalBoxType
SUBTYPE OF (IfcFlowControllerType);
PredefinedType : IfcAirTerminalBoxTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcAirTerminalBoxTypeEnum.USERDEFINED) OR
((PredefinedType = IfcAirTerminalBoxTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcAirTerminalType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcAirTerminalTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcAirTerminalTypeEnum.USERDEFINED) OR
((PredefinedType = IfcAirTerminalTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcAirToAirHeatRecoveryType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcAirToAirHeatRecoveryTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED) OR
((PredefinedType = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcAlarmType
SUBTYPE OF (IfcDistributionControlElementType);
PredefinedType : IfcAlarmTypeEnum;
END_ENTITY;
ENTITY IfcAngularDimension
SUBTYPE OF (IfcDimensionCurveDirectedCallout);
END_ENTITY;
ENTITY IfcAnnotation
SUBTYPE OF (IfcProduct);
INVERSE
ContainedInStructure : SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
END_ENTITY;
ENTITY IfcAnnotationCurveOccurrence
SUPERTYPE OF (ONEOF
(IfcDimensionCurve
,IfcProjectionCurve))
SUBTYPE OF (IfcAnnotationOccurrence);
WHERE
WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
('IFC2X3.IFCCURVE' IN TYPEOF (SELF\IfcStyledItem.Item));
END_ENTITY;
ENTITY IfcAnnotationFillArea
SUBTYPE OF (IfcGeometricRepresentationItem);
OuterBoundary : IfcCurve;
InnerBoundaries : OPTIONAL SET [1:?] OF IfcCurve;
END_ENTITY;
ENTITY IfcAnnotationFillAreaOccurrence
SUBTYPE OF (IfcAnnotationOccurrence);
FillStyleTarget : OPTIONAL IfcPoint;
GlobalOrLocal : OPTIONAL IfcGlobalOrLocalEnum;
WHERE
WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
('IFC2X3.IFCANNOTATIONFILLAREA' IN TYPEOF (SELF\IfcStyledItem.Item));
END_ENTITY;
ENTITY IfcAnnotationOccurrence
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAnnotationCurveOccurrence
,IfcAnnotationFillAreaOccurrence
,IfcAnnotationSurfaceOccurrence
,IfcAnnotationSymbolOccurrence
,IfcAnnotationTextOccurrence))
SUBTYPE OF (IfcStyledItem);
END_ENTITY;
ENTITY IfcAnnotationSurface
SUBTYPE OF (IfcGeometricRepresentationItem);
Item : IfcGeometricRepresentationItem;
TextureCoordinates : OPTIONAL IfcTextureCoordinate;
WHERE
WR01 : SIZEOF([
'IFC2X3.IFCSURFACE',
'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
'IFC2X3.IFCFACEBASEDSURFACEMODEL',
'IFC2X3.IFCSOLIDMODEL',
'IFC2X3.IFCBOOLEANRESULT',
'IFC2X3.IFCCSGPRIMITIVE3D']
* TYPEOF(Item)
) >= 1;
END_ENTITY;
ENTITY IfcAnnotationSurfaceOccurrence
SUBTYPE OF (IfcAnnotationOccurrence);
WHERE
WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
(SIZEOF(
['IFC2X3.IFCSURFACE',
'IFC2X3.IFCFACEBASEDSURFACEMODEL',
'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
'IFC2X3.IFCSOLIDMODEL'] *
TYPEOF(SELF\IfcStyledItem.Item)) > 0);
END_ENTITY;
ENTITY IfcAnnotationSymbolOccurrence
SUPERTYPE OF (ONEOF
(IfcTerminatorSymbol))
SUBTYPE OF (IfcAnnotationOccurrence);
WHERE
WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
('IFC2X3.IFCDEFINEDSYMBOL' IN TYPEOF (SELF\IfcStyledItem.Item));
END_ENTITY;
ENTITY IfcAnnotationTextOccurrence
SUBTYPE OF (IfcAnnotationOccurrence);
WHERE
WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
('IFC2X3.IFCTEXTLITERAL' IN TYPEOF (SELF\IfcStyledItem.Item));
END_ENTITY;
ENTITY IfcApplication;
ApplicationDeveloper : IfcOrganization;
Version : IfcLabel;
ApplicationFullName : IfcLabel;
ApplicationIdentifier : IfcIdentifier;
UNIQUE
UR1 : ApplicationIdentifier;
UR2 : ApplicationFullName, Version;
END_ENTITY;
ENTITY IfcAppliedValue
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCostValue
,IfcEnvironmentalImpactValue));
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
AppliedValue : OPTIONAL IfcAppliedValueSelect;
UnitBasis : OPTIONAL IfcMeasureWithUnit;
ApplicableDate : OPTIONAL IfcDateTimeSelect;
FixedUntilDate : OPTIONAL IfcDateTimeSelect;
INVERSE
ValuesReferenced : SET [0:?] OF IfcReferencesValueDocument FOR ReferencingValues;
ValueOfComponents : SET [0:?] OF IfcAppliedValueRelationship FOR ComponentOfTotal;
IsComponentIn : SET [0:?] OF IfcAppliedValueRelationship FOR Components;
WHERE
WR1 : EXISTS (AppliedValue) OR
EXISTS (ValueOfComponents);
END_ENTITY;
ENTITY IfcAppliedValueRelationship;
ComponentOfTotal : IfcAppliedValue;
Components : SET [1:?] OF IfcAppliedValue;
ArithmeticOperator : IfcArithmeticOperatorEnum;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcApproval;
Description : OPTIONAL IfcText;
ApprovalDateTime : IfcDateTimeSelect;
ApprovalStatus : OPTIONAL IfcLabel;
ApprovalLevel : OPTIONAL IfcLabel;
ApprovalQualifier : OPTIONAL IfcText;
Name : IfcLabel;
Identifier : IfcIdentifier;
INVERSE
Actors : SET [0:?] OF IfcApprovalActorRelationship FOR Approval;
IsRelatedWith : SET [0:?] OF IfcApprovalRelationship FOR RelatedApproval;
Relates : SET [0:?] OF IfcApprovalRelationship FOR RelatingApproval;
END_ENTITY;
ENTITY IfcApprovalActorRelationship;
Actor : IfcActorSelect;
Approval : IfcApproval;
Role : IfcActorRole;
END_ENTITY;
ENTITY IfcApprovalPropertyRelationship;
ApprovedProperties : SET [1:?] OF IfcProperty;
Approval : IfcApproval;
END_ENTITY;
ENTITY IfcApprovalRelationship;
RelatedApproval : IfcApproval;
RelatingApproval : IfcApproval;
Description : OPTIONAL IfcText;
Name : IfcLabel;
END_ENTITY;
ENTITY IfcArbitraryClosedProfileDef
SUPERTYPE OF (ONEOF
(IfcArbitraryProfileDefWithVoids))
SUBTYPE OF (IfcProfileDef);
OuterCurve : IfcCurve;
WHERE
WR1 : OuterCurve.Dim = 2;
WR2 : NOT('IFC2X3.IFCLINE' IN TYPEOF(OuterCurve));
WR3 : NOT('IFC2X3.IFCOFFSETCURVE2D' IN TYPEOF(OuterCurve));
END_ENTITY;
ENTITY IfcArbitraryOpenProfileDef
SUPERTYPE OF (ONEOF
(IfcCenterLineProfileDef))
SUBTYPE OF (IfcProfileDef);
Curve : IfcBoundedCurve;
WHERE
WR11 : ('IFC2X3.IFCCENTERLINEPROFILEDEF' IN TYPEOF(SELF)) OR
(SELF\IfcProfileDef.ProfileType = IfcProfileTypeEnum.CURVE);
WR12 : Curve.Dim = 2;
END_ENTITY;
ENTITY IfcArbitraryProfileDefWithVoids
SUBTYPE OF (IfcArbitraryClosedProfileDef);
InnerCurves : SET [1:?] OF IfcCurve;
WHERE
WR1 : SELF\IfcProfileDef.ProfileType = AREA;
WR2 : SIZEOF(QUERY(temp <* InnerCurves | temp.Dim <> 2)) = 0;
WR3 : SIZEOF(QUERY(temp <* InnerCurves | 'IFC2X3.IFCLINE' IN TYPEOF(temp))) = 0;
END_ENTITY;
ENTITY IfcAsset
SUBTYPE OF (IfcGroup);
AssetID : IfcIdentifier;
OriginalValue : IfcCostValue;
CurrentValue : IfcCostValue;
TotalReplacementCost : IfcCostValue;
Owner : IfcActorSelect;
User : IfcActorSelect;
ResponsiblePerson : IfcPerson;
IncorporationDate : IfcCalendarDate;
DepreciatedValue : IfcCostValue;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects | NOT('IFC2X3.IFCELEMENT' IN TYPEOF(Temp)))) = 0;
END_ENTITY;
ENTITY IfcAsymmetricIShapeProfileDef
SUBTYPE OF (IfcIShapeProfileDef);
TopFlangeWidth : IfcPositiveLengthMeasure;
TopFlangeThickness : OPTIONAL IfcPositiveLengthMeasure;
TopFlangeFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcAxis1Placement
SUBTYPE OF (IfcPlacement);
Axis : OPTIONAL IfcDirection;
DERIVE
Z : IfcDirection := NVL (IfcNormalise(Axis), IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,0.0,1.0]));
WHERE
WR1 : (NOT (EXISTS (Axis))) OR (Axis.Dim = 3);
WR2 : SELF\IfcPlacement.Location.Dim = 3;
END_ENTITY;
ENTITY IfcAxis2Placement2D
SUBTYPE OF (IfcPlacement);
RefDirection : OPTIONAL IfcDirection;
DERIVE
P : LIST [2:2] OF IfcDirection := IfcBuild2Axes(RefDirection);
WHERE
WR1 : (NOT (EXISTS (RefDirection))) OR (RefDirection.Dim = 2);
WR2 : SELF\IfcPlacement.Location.Dim = 2;
END_ENTITY;
ENTITY IfcAxis2Placement3D
SUBTYPE OF (IfcPlacement);
Axis : OPTIONAL IfcDirection;
RefDirection : OPTIONAL IfcDirection;
DERIVE
P : LIST [3:3] OF IfcDirection := IfcBuildAxes(Axis, RefDirection);
WHERE
WR1 : SELF\IfcPlacement.Location.Dim = 3;
WR2 : (NOT (EXISTS (Axis))) OR (Axis.Dim = 3);
WR3 : (NOT (EXISTS (RefDirection))) OR (RefDirection.Dim = 3);
WR4 : (NOT (EXISTS (Axis))) OR (NOT (EXISTS (RefDirection))) OR (IfcCrossProduct(Axis,RefDirection).Magnitude > 0.0);
WR5 : NOT ((EXISTS (Axis)) XOR (EXISTS (RefDirection)));
END_ENTITY;
ENTITY IfcBSplineCurve
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBezierCurve))
SUBTYPE OF (IfcBoundedCurve);
Degree : INTEGER;
ControlPointsList : LIST [2:?] OF IfcCartesianPoint;
CurveForm : IfcBSplineCurveForm;
ClosedCurve : LOGICAL;
SelfIntersect : LOGICAL;
DERIVE
ControlPoints : ARRAY [0:255] OF IfcCartesianPoint := IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints);
UpperIndexOnControlPoints : INTEGER := (SIZEOF(ControlPointsList) - 1);
WHERE
WR41 : SIZEOF(QUERY(Temp <* ControlPointsList |
Temp.Dim <> ControlPointsList[1].Dim))
= 0;
END_ENTITY;
ENTITY IfcBeam
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
ENTITY IfcBeamType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcBeamTypeEnum;
END_ENTITY;
ENTITY IfcBezierCurve
SUPERTYPE OF (ONEOF
(IfcRationalBezierCurve))
SUBTYPE OF (IfcBSplineCurve);
END_ENTITY;
ENTITY IfcBlobTexture
SUBTYPE OF (IfcSurfaceTexture);
RasterFormat : IfcIdentifier;
RasterCode : BOOLEAN;
WHERE
WR11 : SELF.RasterFormat IN ['BMP', 'JPG', 'GIF', 'PNG'];
END_ENTITY;
ENTITY IfcBlock
SUBTYPE OF (IfcCsgPrimitive3D);
XLength : IfcPositiveLengthMeasure;
YLength : IfcPositiveLengthMeasure;
ZLength : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcBoilerType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcBoilerTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcBoilerTypeEnum.USERDEFINED) OR
((PredefinedType = IfcBoilerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcBooleanClippingResult
SUBTYPE OF (IfcBooleanResult);
WHERE
WR1 : ('IFC2X3.IFCSWEPTAREASOLID' IN TYPEOF(FirstOperand)) OR ('IFC2X3.IFCBOOLEANCLIPPINGRESULT' IN TYPEOF(FirstOperand));
WR2 : ('IFC2X3.IFCHALFSPACESOLID' IN TYPEOF(SecondOperand));
WR3 : Operator = DIFFERENCE;
END_ENTITY;
ENTITY IfcBooleanResult
SUPERTYPE OF (ONEOF
(IfcBooleanClippingResult))
SUBTYPE OF (IfcGeometricRepresentationItem);
Operator : IfcBooleanOperator;
FirstOperand : IfcBooleanOperand;
SecondOperand : IfcBooleanOperand;
DERIVE
Dim : IfcDimensionCount := FirstOperand.Dim;
WHERE
WR1 : FirstOperand.Dim = SecondOperand.Dim;
END_ENTITY;
ENTITY IfcBoundaryCondition
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBoundaryEdgeCondition
,IfcBoundaryFaceCondition
,IfcBoundaryNodeCondition));
Name : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcBoundaryEdgeCondition
SUBTYPE OF (IfcBoundaryCondition);
LinearStiffnessByLengthX : OPTIONAL IfcModulusOfLinearSubgradeReactionMeasure;
LinearStiffnessByLengthY : OPTIONAL IfcModulusOfLinearSubgradeReactionMeasure;
LinearStiffnessByLengthZ : OPTIONAL IfcModulusOfLinearSubgradeReactionMeasure;
RotationalStiffnessByLengthX : OPTIONAL IfcModulusOfRotationalSubgradeReactionMeasure;
RotationalStiffnessByLengthY : OPTIONAL IfcModulusOfRotationalSubgradeReactionMeasure;
RotationalStiffnessByLengthZ : OPTIONAL IfcModulusOfRotationalSubgradeReactionMeasure;
END_ENTITY;
ENTITY IfcBoundaryFaceCondition
SUBTYPE OF (IfcBoundaryCondition);
LinearStiffnessByAreaX : OPTIONAL IfcModulusOfSubgradeReactionMeasure;
LinearStiffnessByAreaY : OPTIONAL IfcModulusOfSubgradeReactionMeasure;
LinearStiffnessByAreaZ : OPTIONAL IfcModulusOfSubgradeReactionMeasure;
END_ENTITY;
ENTITY IfcBoundaryNodeCondition
SUPERTYPE OF (ONEOF
(IfcBoundaryNodeConditionWarping))
SUBTYPE OF (IfcBoundaryCondition);
LinearStiffnessX : OPTIONAL IfcLinearStiffnessMeasure;
LinearStiffnessY : OPTIONAL IfcLinearStiffnessMeasure;
LinearStiffnessZ : OPTIONAL IfcLinearStiffnessMeasure;
RotationalStiffnessX : OPTIONAL IfcRotationalStiffnessMeasure;
RotationalStiffnessY : OPTIONAL IfcRotationalStiffnessMeasure;
RotationalStiffnessZ : OPTIONAL IfcRotationalStiffnessMeasure;
END_ENTITY;
ENTITY IfcBoundaryNodeConditionWarping
SUBTYPE OF (IfcBoundaryNodeCondition);
WarpingStiffness : OPTIONAL IfcWarpingMomentMeasure;
END_ENTITY;
ENTITY IfcBoundedCurve
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBSplineCurve
,IfcCompositeCurve
,IfcPolyline
,IfcTrimmedCurve))
SUBTYPE OF (IfcCurve);
END_ENTITY;
ENTITY IfcBoundedSurface
SUPERTYPE OF (ONEOF
(IfcCurveBoundedPlane
,IfcRectangularTrimmedSurface))
SUBTYPE OF (IfcSurface);
END_ENTITY;
ENTITY IfcBoundingBox
SUBTYPE OF (IfcGeometricRepresentationItem);
Corner : IfcCartesianPoint;
XDim : IfcPositiveLengthMeasure;
YDim : IfcPositiveLengthMeasure;
ZDim : IfcPositiveLengthMeasure;
DERIVE
Dim : IfcDimensionCount := 3;
END_ENTITY;
ENTITY IfcBoxedHalfSpace
SUBTYPE OF (IfcHalfSpaceSolid);
Enclosure : IfcBoundingBox;
WHERE
WR1 : NOT ('IFC2X3.IFCCURVEBOUNDEDPLANE' IN TYPEOF(SELF\IfcHalfSpaceSolid.BaseSurface));
END_ENTITY;
ENTITY IfcBuilding
SUBTYPE OF (IfcSpatialStructureElement);
ElevationOfRefHeight : OPTIONAL IfcLengthMeasure;
ElevationOfTerrain : OPTIONAL IfcLengthMeasure;
BuildingAddress : OPTIONAL IfcPostalAddress;
END_ENTITY;
ENTITY IfcBuildingElement
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBeam
,IfcBuildingElementComponent
,IfcBuildingElementProxy
,IfcColumn
,IfcCovering
,IfcCurtainWall
,IfcDoor
,IfcFooting
,IfcMember
,IfcPile
,IfcPlate
,IfcRailing
,IfcRamp
,IfcRampFlight
,IfcRoof
,IfcSlab
,IfcStair
,IfcStairFlight
,IfcWall
,IfcWindow))
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcBuildingElementComponent
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBuildingElementPart
,IfcReinforcingElement))
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
ENTITY IfcBuildingElementPart
SUBTYPE OF (IfcBuildingElementComponent);
END_ENTITY;
ENTITY IfcBuildingElementProxy
SUBTYPE OF (IfcBuildingElement);
CompositionType : OPTIONAL IfcElementCompositionEnum;
WHERE
WR1 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcBuildingElementProxyType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcBuildingElementProxyTypeEnum;
END_ENTITY;
ENTITY IfcBuildingElementType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBeamType
,IfcBuildingElementProxyType
,IfcColumnType
,IfcCoveringType
,IfcCurtainWallType
,IfcMemberType
,IfcPlateType
,IfcRailingType
,IfcRampFlightType
,IfcSlabType
,IfcStairFlightType
,IfcWallType))
SUBTYPE OF (IfcElementType);
END_ENTITY;
ENTITY IfcBuildingStorey
SUBTYPE OF (IfcSpatialStructureElement);
Elevation : OPTIONAL IfcLengthMeasure;
END_ENTITY;
ENTITY IfcCShapeProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
Depth : IfcPositiveLengthMeasure;
Width : IfcPositiveLengthMeasure;
WallThickness : IfcPositiveLengthMeasure;
Girth : IfcPositiveLengthMeasure;
InternalFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
CentreOfGravityInX : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR1 : Girth < (Depth / 2.);
WR2 : NOT(EXISTS(InternalFilletRadius)) OR
((InternalFilletRadius <= Width/2.) AND (InternalFilletRadius <= Depth/2.));
WR3 : (WallThickness < Width/2.) AND (WallThickness < Depth/2.);
END_ENTITY;
ENTITY IfcCableCarrierFittingType
SUBTYPE OF (IfcFlowFittingType);
PredefinedType : IfcCableCarrierFittingTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcCableCarrierFittingTypeEnum.USERDEFINED) OR
((PredefinedType = IfcCableCarrierFittingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcCableCarrierSegmentType
SUBTYPE OF (IfcFlowSegmentType);
PredefinedType : IfcCableCarrierSegmentTypeEnum;
END_ENTITY;
ENTITY IfcCableSegmentType
SUBTYPE OF (IfcFlowSegmentType);
PredefinedType : IfcCableSegmentTypeEnum;
END_ENTITY;
ENTITY IfcCalendarDate;
DayComponent : IfcDayInMonthNumber;
MonthComponent : IfcMonthInYearNumber;
YearComponent : IfcYearNumber;
WHERE
WR21 : IfcValidCalendarDate (SELF);
END_ENTITY;
ENTITY IfcCartesianPoint
SUBTYPE OF (IfcPoint);
Coordinates : LIST [1:3] OF IfcLengthMeasure;
DERIVE
Dim : IfcDimensionCount := HIINDEX(Coordinates);
WHERE
WR1 : HIINDEX(Coordinates) >= 2;
END_ENTITY;
ENTITY IfcCartesianTransformationOperator
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCartesianTransformationOperator2D
,IfcCartesianTransformationOperator3D))
SUBTYPE OF (IfcGeometricRepresentationItem);
Axis1 : OPTIONAL IfcDirection;
Axis2 : OPTIONAL IfcDirection;
LocalOrigin : IfcCartesianPoint;
Scale : OPTIONAL REAL;
DERIVE
Scl : REAL := NVL(Scale, 1.0);
Dim : IfcDimensionCount := LocalOrigin.Dim;
WHERE
WR1 : Scl > 0.0;
END_ENTITY;
ENTITY IfcCartesianTransformationOperator2D
SUPERTYPE OF (ONEOF
(IfcCartesianTransformationOperator2DnonUniform))
SUBTYPE OF (IfcCartesianTransformationOperator);
DERIVE
U : LIST [2:2] OF IfcDirection := IfcBaseAxis(2,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,?);
WHERE
WR1 : SELF\IfcCartesianTransformationOperator.Dim = 2;
WR2 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR
(SELF\IfcCartesianTransformationOperator.Axis1.Dim = 2);
WR3 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR
(SELF\IfcCartesianTransformationOperator.Axis2.Dim = 2);
END_ENTITY;
ENTITY IfcCartesianTransformationOperator2DnonUniform
SUBTYPE OF (IfcCartesianTransformationOperator2D);
Scale2 : OPTIONAL REAL;
DERIVE
Scl2 : REAL := NVL(Scale2, SELF\IfcCartesianTransformationOperator.Scl);
WHERE
WR1 : Scl2 > 0.0;
END_ENTITY;
ENTITY IfcCartesianTransformationOperator3D
SUPERTYPE OF (ONEOF
(IfcCartesianTransformationOperator3DnonUniform))
SUBTYPE OF (IfcCartesianTransformationOperator);
Axis3 : OPTIONAL IfcDirection;
DERIVE
U : LIST [3:3] OF IfcDirection := IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,Axis3);
WHERE
WR1 : SELF\IfcCartesianTransformationOperator.Dim = 3;
WR2 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR
(SELF\IfcCartesianTransformationOperator.Axis1.Dim = 3);
WR3 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR
(SELF\IfcCartesianTransformationOperator.Axis2.Dim = 3);
WR4 : NOT(EXISTS(Axis3)) OR (Axis3.Dim = 3);
END_ENTITY;
ENTITY IfcCartesianTransformationOperator3DnonUniform
SUBTYPE OF (IfcCartesianTransformationOperator3D);
Scale2 : OPTIONAL REAL;
Scale3 : OPTIONAL REAL;
DERIVE
Scl2 : REAL := NVL(Scale2, SELF\IfcCartesianTransformationOperator.Scl);
Scl3 : REAL := NVL(Scale3, SELF\IfcCartesianTransformationOperator.Scl);
WHERE
WR1 : Scl2 > 0.0;
WR2 : Scl3 > 0.0;
END_ENTITY;
ENTITY IfcCenterLineProfileDef
SUBTYPE OF (IfcArbitraryOpenProfileDef);
Thickness : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcChamferEdgeFeature
SUBTYPE OF (IfcEdgeFeature);
Width : OPTIONAL IfcPositiveLengthMeasure;
Height : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcChillerType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcChillerTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcChillerTypeEnum.USERDEFINED) OR
((PredefinedType = IfcChillerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcCircle
SUBTYPE OF (IfcConic);
Radius : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcCircleHollowProfileDef
SUBTYPE OF (IfcCircleProfileDef);
WallThickness : IfcPositiveLengthMeasure;
WHERE
WR1 : WallThickness < SELF\IfcCircleProfileDef.Radius;
END_ENTITY;
ENTITY IfcCircleProfileDef
SUPERTYPE OF (ONEOF
(IfcCircleHollowProfileDef))
SUBTYPE OF (IfcParameterizedProfileDef);
Radius : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcClassification;
Source : IfcLabel;
Edition : IfcLabel;
EditionDate : OPTIONAL IfcCalendarDate;
Name : IfcLabel;
INVERSE
Contains : SET [0:?] OF IfcClassificationItem FOR ItemOf;
END_ENTITY;
ENTITY IfcClassificationItem;
Notation : IfcClassificationNotationFacet;
ItemOf : OPTIONAL IfcClassification;
Title : IfcLabel;
INVERSE
IsClassifiedItemIn : SET [0:1] OF IfcClassificationItemRelationship FOR RelatedItems;
IsClassifyingItemIn : SET [0:1] OF IfcClassificationItemRelationship FOR RelatingItem;
END_ENTITY;
ENTITY IfcClassificationItemRelationship;
RelatingItem : IfcClassificationItem;
RelatedItems : SET [1:?] OF IfcClassificationItem;
END_ENTITY;
ENTITY IfcClassificationNotation;
NotationFacets : SET [1:?] OF IfcClassificationNotationFacet;
END_ENTITY;
ENTITY IfcClassificationNotationFacet;
NotationValue : IfcLabel;
END_ENTITY;
ENTITY IfcClassificationReference
SUBTYPE OF (IfcExternalReference);
ReferencedSource : OPTIONAL IfcClassification;
END_ENTITY;
ENTITY IfcClosedShell
SUBTYPE OF (IfcConnectedFaceSet);
END_ENTITY;
ENTITY IfcCoilType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcCoilTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcCoilTypeEnum.USERDEFINED) OR
((PredefinedType = IfcCoilTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcColourRgb
SUBTYPE OF (IfcColourSpecification);
Red : IfcNormalisedRatioMeasure;
Green : IfcNormalisedRatioMeasure;
Blue : IfcNormalisedRatioMeasure;
END_ENTITY;
ENTITY IfcColourSpecification
ABSTRACT SUPERTYPE OF (ONEOF
(IfcColourRgb));
Name : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcColumn
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
ENTITY IfcColumnType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcColumnTypeEnum;
END_ENTITY;
ENTITY IfcComplexProperty
SUBTYPE OF (IfcProperty);
UsageName : IfcIdentifier;
HasProperties : SET [1:?] OF IfcProperty;
WHERE
WR21 : SIZEOF(QUERY(temp <* HasProperties | SELF :=: temp)) = 0;
WR22 : IfcUniquePropertyName(HasProperties);
END_ENTITY;
ENTITY IfcCompositeCurve
SUPERTYPE OF (ONEOF
(Ifc2DCompositeCurve))
SUBTYPE OF (IfcBoundedCurve);
Segments : LIST [1:?] OF IfcCompositeCurveSegment;
SelfIntersect : LOGICAL;
DERIVE
NSegments : INTEGER := SIZEOF(Segments);
ClosedCurve : LOGICAL := Segments[NSegments].Transition <> Discontinuous;
WHERE
WR41 : ((NOT ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 1)) OR ((ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 0));
WR42 : SIZEOF( QUERY( Temp <* Segments | Temp.Dim <> Segments[1].Dim)) = 0;
END_ENTITY;
ENTITY IfcCompositeCurveSegment
SUBTYPE OF (IfcGeometricRepresentationItem);
Transition : IfcTransitionCode;
SameSense : BOOLEAN;
ParentCurve : IfcCurve;
DERIVE
Dim : IfcDimensionCount := ParentCurve.Dim;
INVERSE
UsingCurves : SET [1:?] OF IfcCompositeCurve FOR Segments;
WHERE
WR1 : ('IFC2X3.IFCBOUNDEDCURVE' IN TYPEOF(ParentCurve));
END_ENTITY;
ENTITY IfcCompositeProfileDef
SUBTYPE OF (IfcProfileDef);
Profiles : SET [2:?] OF IfcProfileDef;
Label : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <* Profiles | temp.ProfileType <> Profiles[1].ProfileType)) = 0;
WR2 : SIZEOF(QUERY(temp <* Profiles | 'IFC2X3.IFCCOMPOSITEPROFILEDEF' IN TYPEOF(temp))) = 0;
END_ENTITY;
ENTITY IfcCompressorType
SUBTYPE OF (IfcFlowMovingDeviceType);
PredefinedType : IfcCompressorTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcCompressorTypeEnum.USERDEFINED) OR
((PredefinedType = IfcCompressorTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcCondenserType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcCondenserTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcCondenserTypeEnum.USERDEFINED) OR
((PredefinedType = IfcCondenserTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcCondition
SUBTYPE OF (IfcGroup);
END_ENTITY;
ENTITY IfcConditionCriterion
SUBTYPE OF (IfcControl);
Criterion : IfcConditionCriterionSelect;
CriterionDateTime : IfcDateTimeSelect;
WHERE
WR1 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcConic
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCircle
,IfcEllipse))
SUBTYPE OF (IfcCurve);
Position : IfcAxis2Placement;
END_ENTITY;
ENTITY IfcConnectedFaceSet
SUPERTYPE OF (ONEOF
(IfcClosedShell
,IfcOpenShell))
SUBTYPE OF (IfcTopologicalRepresentationItem);
CfsFaces : SET [1:?] OF IfcFace;
END_ENTITY;
ENTITY IfcConnectionCurveGeometry
SUBTYPE OF (IfcConnectionGeometry);
CurveOnRelatingElement : IfcCurveOrEdgeCurve;
CurveOnRelatedElement : OPTIONAL IfcCurveOrEdgeCurve;
END_ENTITY;
ENTITY IfcConnectionGeometry
ABSTRACT SUPERTYPE OF (ONEOF
(IfcConnectionCurveGeometry
,IfcConnectionPointGeometry
,IfcConnectionPortGeometry
,IfcConnectionSurfaceGeometry));
END_ENTITY;
ENTITY IfcConnectionPointEccentricity
SUBTYPE OF (IfcConnectionPointGeometry);
EccentricityInX : OPTIONAL IfcLengthMeasure;
EccentricityInY : OPTIONAL IfcLengthMeasure;
EccentricityInZ : OPTIONAL IfcLengthMeasure;
END_ENTITY;
ENTITY IfcConnectionPointGeometry
SUPERTYPE OF (ONEOF
(IfcConnectionPointEccentricity))
SUBTYPE OF (IfcConnectionGeometry);
PointOnRelatingElement : IfcPointOrVertexPoint;
PointOnRelatedElement : OPTIONAL IfcPointOrVertexPoint;
END_ENTITY;
ENTITY IfcConnectionPortGeometry
SUBTYPE OF (IfcConnectionGeometry);
LocationAtRelatingElement : IfcAxis2Placement;
LocationAtRelatedElement : OPTIONAL IfcAxis2Placement;
ProfileOfPort : IfcProfileDef;
END_ENTITY;
ENTITY IfcConnectionSurfaceGeometry
SUBTYPE OF (IfcConnectionGeometry);
SurfaceOnRelatingElement : IfcSurfaceOrFaceSurface;
SurfaceOnRelatedElement : OPTIONAL IfcSurfaceOrFaceSurface;
END_ENTITY;
ENTITY IfcConstraint
ABSTRACT SUPERTYPE OF (ONEOF
(IfcMetric
,IfcObjective));
Name : IfcLabel;
Description : OPTIONAL IfcText;
ConstraintGrade : IfcConstraintEnum;
ConstraintSource : OPTIONAL IfcLabel;
CreatingActor : OPTIONAL IfcActorSelect;
CreationTime : OPTIONAL IfcDateTimeSelect;
UserDefinedGrade : OPTIONAL IfcLabel;
INVERSE
ClassifiedAs : SET [0:?] OF IfcConstraintClassificationRelationship FOR ClassifiedConstraint;
RelatesConstraints : SET [0:?] OF IfcConstraintRelationship FOR RelatingConstraint;
IsRelatedWith : SET [0:?] OF IfcConstraintRelationship FOR RelatedConstraints;
PropertiesForConstraint : SET [0:?] OF IfcPropertyConstraintRelationship FOR RelatingConstraint;
Aggregates : SET [0:?] OF IfcConstraintAggregationRelationship FOR RelatingConstraint;
IsAggregatedIn : SET [0:?] OF IfcConstraintAggregationRelationship FOR RelatedConstraints;
WHERE
WR11 : (ConstraintGrade <> IfcConstraintEnum.USERDEFINED) OR
((ConstraintGrade = IfcConstraintEnum.USERDEFINED) AND EXISTS(SELF\IfcConstraint.UserDefinedGrade));
END_ENTITY;
ENTITY IfcConstraintAggregationRelationship;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
RelatingConstraint : IfcConstraint;
RelatedConstraints : LIST [1:?] OF UNIQUE IfcConstraint;
LogicalAggregator : IfcLogicalOperatorEnum;
WHERE
WR11 : SIZEOF(QUERY(temp <* RelatedConstraints |
temp :=: RelatingConstraint
)) = 0;
END_ENTITY;
ENTITY IfcConstraintClassificationRelationship;
ClassifiedConstraint : IfcConstraint;
RelatedClassifications : SET [1:?] OF IfcClassificationNotationSelect;
END_ENTITY;
ENTITY IfcConstraintRelationship;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
RelatingConstraint : IfcConstraint;
RelatedConstraints : SET [1:?] OF IfcConstraint;
WHERE
WR11 : SIZEOF(QUERY(temp <* RelatedConstraints | temp :=: RelatingConstraint )) = 0;
END_ENTITY;
ENTITY IfcConstructionEquipmentResource
SUBTYPE OF (IfcConstructionResource);
END_ENTITY;
ENTITY IfcConstructionMaterialResource
SUBTYPE OF (IfcConstructionResource);
Suppliers : OPTIONAL SET [1:?] OF IfcActorSelect;
UsageRatio : OPTIONAL IfcRatioMeasure;
WHERE
WR1 : SIZEOF(SELF\IfcResource.ResourceOf) <=1;
WR2 : NOT(EXISTS(SELF\IfcResource.ResourceOf[1])) OR
(SELF\IfcResource.ResourceOf[1].RelatedObjectsType = IfcObjectTypeEnum.PRODUCT);
END_ENTITY;
ENTITY IfcConstructionProductResource
SUBTYPE OF (IfcConstructionResource);
WHERE
WR1 : SIZEOF(SELF\IfcResource.ResourceOf) <=1;
WR2 : NOT(EXISTS(SELF\IfcResource.ResourceOf[1])) OR
(SELF\IfcResource.ResourceOf[1].RelatedObjectsType = IfcObjectTypeEnum.PRODUCT);
END_ENTITY;
ENTITY IfcConstructionResource
ABSTRACT SUPERTYPE OF (ONEOF
(IfcConstructionEquipmentResource
,IfcConstructionMaterialResource
,IfcConstructionProductResource
,IfcCrewResource
,IfcLaborResource
,IfcSubContractResource))
SUBTYPE OF (IfcResource);
ResourceIdentifier : OPTIONAL IfcIdentifier;
ResourceGroup : OPTIONAL IfcLabel;
ResourceConsumption : OPTIONAL IfcResourceConsumptionEnum;
BaseQuantity : OPTIONAL IfcMeasureWithUnit;
END_ENTITY;
ENTITY IfcContextDependentUnit
SUBTYPE OF (IfcNamedUnit);
Name : IfcLabel;
END_ENTITY;
ENTITY IfcControl
ABSTRACT SUPERTYPE OF (ONEOF
(IfcActionRequest
,IfcConditionCriterion
,IfcCostItem
,IfcCostSchedule
,IfcEquipmentStandard
,IfcFurnitureStandard
,IfcPerformanceHistory
,IfcPermit
,IfcProjectOrder
,IfcProjectOrderRecord
,IfcScheduleTimeControl
,IfcServiceLife
,IfcSpaceProgram
,IfcTimeSeriesSchedule
,IfcWorkControl))
SUBTYPE OF (IfcObject);
INVERSE
Controls : SET [0:?] OF IfcRelAssignsToControl FOR RelatingControl;
END_ENTITY;
ENTITY IfcControllerType
SUBTYPE OF (IfcDistributionControlElementType);
PredefinedType : IfcControllerTypeEnum;
END_ENTITY;
ENTITY IfcConversionBasedUnit
SUBTYPE OF (IfcNamedUnit);
Name : IfcLabel;
ConversionFactor : IfcMeasureWithUnit;
END_ENTITY;
ENTITY IfcCooledBeamType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcCooledBeamTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcCooledBeamTypeEnum.USERDEFINED) OR
((PredefinedType = IfcCooledBeamTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcCoolingTowerType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcCoolingTowerTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcCoolingTowerTypeEnum.USERDEFINED) OR
((PredefinedType = IfcCoolingTowerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcCoordinatedUniversalTimeOffset;
HourOffset : IfcHourInDay;
MinuteOffset : OPTIONAL IfcMinuteInHour;
Sense : IfcAheadOrBehind;
END_ENTITY;
ENTITY IfcCostItem
SUBTYPE OF (IfcControl);
END_ENTITY;
ENTITY IfcCostSchedule
SUBTYPE OF (IfcControl);
SubmittedBy : OPTIONAL IfcActorSelect;
PreparedBy : OPTIONAL IfcActorSelect;
SubmittedOn : OPTIONAL IfcDateTimeSelect;
Status : OPTIONAL IfcLabel;
TargetUsers : OPTIONAL SET [1:?] OF IfcActorSelect;
UpdateDate : OPTIONAL IfcDateTimeSelect;
ID : IfcIdentifier;
PredefinedType : IfcCostScheduleTypeEnum;
UNIQUE
UR2 : ID;
END_ENTITY;
ENTITY IfcCostValue
SUBTYPE OF (IfcAppliedValue);
CostType : IfcLabel;
Condition : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcCovering
SUBTYPE OF (IfcBuildingElement);
PredefinedType : OPTIONAL IfcCoveringTypeEnum;
INVERSE
CoversSpaces : SET [0:1] OF IfcRelCoversSpaces FOR RelatedCoverings;
Covers : SET [0:1] OF IfcRelCoversBldgElements FOR RelatedCoverings;
END_ENTITY;
ENTITY IfcCoveringType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcCoveringTypeEnum;
END_ENTITY;
ENTITY IfcCraneRailAShapeProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
OverallHeight : IfcPositiveLengthMeasure;
BaseWidth2 : IfcPositiveLengthMeasure;
Radius : OPTIONAL IfcPositiveLengthMeasure;
HeadWidth : IfcPositiveLengthMeasure;
HeadDepth2 : IfcPositiveLengthMeasure;
HeadDepth3 : IfcPositiveLengthMeasure;
WebThickness : IfcPositiveLengthMeasure;
BaseWidth4 : IfcPositiveLengthMeasure;
BaseDepth1 : IfcPositiveLengthMeasure;
BaseDepth2 : IfcPositiveLengthMeasure;
BaseDepth3 : IfcPositiveLengthMeasure;
CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcCraneRailFShapeProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
OverallHeight : IfcPositiveLengthMeasure;
HeadWidth : IfcPositiveLengthMeasure;
Radius : OPTIONAL IfcPositiveLengthMeasure;
HeadDepth2 : IfcPositiveLengthMeasure;
HeadDepth3 : IfcPositiveLengthMeasure;
WebThickness : IfcPositiveLengthMeasure;
BaseDepth1 : IfcPositiveLengthMeasure;
BaseDepth2 : IfcPositiveLengthMeasure;
CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcCrewResource
SUBTYPE OF (IfcConstructionResource);
END_ENTITY;
ENTITY IfcCsgPrimitive3D
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBlock
,IfcRectangularPyramid
,IfcRightCircularCone
,IfcRightCircularCylinder
,IfcSphere))
SUBTYPE OF (IfcGeometricRepresentationItem);
Position : IfcAxis2Placement3D;
DERIVE
Dim : IfcDimensionCount := 3;
END_ENTITY;
ENTITY IfcCsgSolid
SUBTYPE OF (IfcSolidModel);
TreeRootExpression : IfcCsgSelect;
END_ENTITY;
ENTITY IfcCurrencyRelationship;
RelatingMonetaryUnit : IfcMonetaryUnit;
RelatedMonetaryUnit : IfcMonetaryUnit;
ExchangeRate : IfcPositiveRatioMeasure;
RateDateTime : IfcDateAndTime;
RateSource : OPTIONAL IfcLibraryInformation;
END_ENTITY;
ENTITY IfcCurtainWall
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
ENTITY IfcCurtainWallType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcCurtainWallTypeEnum;
END_ENTITY;
ENTITY IfcCurve
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBoundedCurve
,IfcConic
,IfcLine
,IfcOffsetCurve2D
,IfcOffsetCurve3D))
SUBTYPE OF (IfcGeometricRepresentationItem);
DERIVE
Dim : IfcDimensionCount := IfcCurveDim(SELF);
END_ENTITY;
ENTITY IfcCurveBoundedPlane
SUBTYPE OF (IfcBoundedSurface);
BasisSurface : IfcPlane;
OuterBoundary : IfcCurve;
InnerBoundaries : SET [0:?] OF IfcCurve;
DERIVE
Dim : IfcDimensionCount := BasisSurface.Dim;
END_ENTITY;
ENTITY IfcCurveStyle
SUBTYPE OF (IfcPresentationStyle);
CurveFont : OPTIONAL IfcCurveFontOrScaledCurveFontSelect;
CurveWidth : OPTIONAL IfcSizeSelect;
CurveColour : OPTIONAL IfcColour;
WHERE
WR11 : (NOT(EXISTS(CurveWidth))) OR
('IFC2X3.IFCPOSITIVELENGTHMEASURE' IN TYPEOF(CurveWidth)) OR
(('IFC2X3.IFCDESCRIPTIVEMEASURE' IN TYPEOF(CurveWidth)) AND
(CurveWidth = 'by layer'));
END_ENTITY;
ENTITY IfcCurveStyleFont;
Name : OPTIONAL IfcLabel;
PatternList : LIST [1:?] OF IfcCurveStyleFontPattern;
END_ENTITY;
ENTITY IfcCurveStyleFontAndScaling;
Name : OPTIONAL IfcLabel;
CurveFont : IfcCurveStyleFontSelect;
CurveFontScaling : IfcPositiveRatioMeasure;
END_ENTITY;
ENTITY IfcCurveStyleFontPattern;
VisibleSegmentLength : IfcLengthMeasure;
InvisibleSegmentLength : IfcPositiveLengthMeasure;
WHERE
WR01 : VisibleSegmentLength >= 0.;
END_ENTITY;
ENTITY IfcDamperType
SUBTYPE OF (IfcFlowControllerType);
PredefinedType : IfcDamperTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcDamperTypeEnum.USERDEFINED) OR
((PredefinedType = IfcDamperTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcDateAndTime;
DateComponent : IfcCalendarDate;
TimeComponent : IfcLocalTime;
END_ENTITY;
ENTITY IfcDefinedSymbol
SUBTYPE OF (IfcGeometricRepresentationItem);
Definition : IfcDefinedSymbolSelect;
Target : IfcCartesianTransformationOperator2D;
END_ENTITY;
ENTITY IfcDerivedProfileDef
SUBTYPE OF (IfcProfileDef);
ParentProfile : IfcProfileDef;
Operator : IfcCartesianTransformationOperator2D;
Label : OPTIONAL IfcLabel;
WHERE
WR1 : SELF\IfcProfileDef.ProfileType = ParentProfile.ProfileType;
END_ENTITY;
ENTITY IfcDerivedUnit;
Elements : SET [1:?] OF IfcDerivedUnitElement;
UnitType : IfcDerivedUnitEnum;
UserDefinedType : OPTIONAL IfcLabel;
DERIVE
Dimensions : IfcDimensionalExponents := IfcDeriveDimensionalExponents(SELF);
WHERE
WR1 : (SIZEOF (Elements) > 1) OR ((SIZEOF (Elements) = 1) AND (Elements[1].Exponent <> 1 ));
WR2 : (UnitType <> IfcDerivedUnitEnum.USERDEFINED) OR
((UnitType = IfcDerivedUnitEnum.USERDEFINED) AND
(EXISTS(SELF.UserDefinedType)));
END_ENTITY;
ENTITY IfcDerivedUnitElement;
Unit : IfcNamedUnit;
Exponent : INTEGER;
END_ENTITY;
ENTITY IfcDiameterDimension
SUBTYPE OF (IfcDimensionCurveDirectedCallout);
END_ENTITY;
ENTITY IfcDimensionCalloutRelationship
SUBTYPE OF (IfcDraughtingCalloutRelationship);
WHERE
WR11 : SELF\IfcDraughtingCalloutRelationship.Name IN ['primary','secondary'];
WR12 : SIZEOF(TYPEOF(SELF\IfcDraughtingCalloutRelationship.RelatingDraughtingCallout) * [
'IFC2X3.IFCANGULARDIMENSION',
'IFC2X3.IFCDIAMETERDIMENSION',
'IFC2X3.IFCLINEARDIMENSION',
'IFC2X3.IFCRADIUSDIMENSION']) = 1;
WR13 : NOT ('IFC2X3.IFCDIMENSIONCURVEDIRECTEDCALLOUT'
IN TYPEOF (SELF\IfcDraughtingCalloutRelationship.RelatedDraughtingCallout));
END_ENTITY;
ENTITY IfcDimensionCurve
SUBTYPE OF (IfcAnnotationCurveOccurrence);
INVERSE
AnnotatedBySymbols : SET [0:2] OF IfcTerminatorSymbol FOR AnnotatedCurve;
WHERE
WR51 : SIZEOF(USEDIN(SELF,'IFC2X3.IFCDRAUGHTINGCALLOUT.CONTENTS'))
>= 1;
WR52 : (SIZEOF(QUERY (Dct1 <* USEDIN(SELF,'IFC2X3.' +
'IFCTERMINATORSYMBOL.ANNOTATEDCURVE') | (Dct1.Role = IfcDimensionExtentUsage.ORIGIN))) <= 1)
AND
(SIZEOF(QUERY (Dct2 <* USEDIN(SELF,'IFC2X3.' +
'IFCTERMINATORSYMBOL.ANNOTATEDCURVE') | (Dct2.Role = IfcDimensionExtentUsage.TARGET))) <= 1);
WR53 : SIZEOF(QUERY (Dct <* AnnotatedBySymbols |
NOT('IFC2X3.IFCDIMENSIONCURVETERMINATOR' IN TYPEOF(Dct))))
= 0;
END_ENTITY;
ENTITY IfcDimensionCurveDirectedCallout
SUPERTYPE OF (ONEOF
(IfcAngularDimension
,IfcDiameterDimension
,IfcLinearDimension
,IfcRadiusDimension))
SUBTYPE OF (IfcDraughtingCallout);
WHERE
WR41 : SIZEOF(QUERY (Dc <* SELF\IfcDraughtingCallout.Contents | (
'IFC2X3.IFCDIMENSIONCURVE' IN TYPEOF(Dc))))
= 1;
WR42 : SIZEOF (QUERY (Dc <* SELF.contents |
('IFC2X3.IFCPROJECTIONCURVE' IN
TYPEOF (Dc)))) <= 2;
END_ENTITY;
ENTITY IfcDimensionCurveTerminator
SUBTYPE OF (IfcTerminatorSymbol);
Role : IfcDimensionExtentUsage;
WHERE
WR61 : 'IFC2X3.IFCDIMENSIONCURVE' IN TYPEOF
(SELF\IfcTerminatorSymbol.AnnotatedCurve);
END_ENTITY;
ENTITY IfcDimensionPair
SUBTYPE OF (IfcDraughtingCalloutRelationship);
WHERE
WR11 : SELF.Name IN ['chained','parallel'];
WR12 : SIZEOF(TYPEOF(SELF.RelatingDraughtingCallout) * [
'IFC2X3.IFCANGULARDIMENSION',
'IFC2X3.IFCDIAMETERDIMENSION',
'IFC2X3.IFCLINEARDIMENSION',
'IFC2X3.IFCRADIUSDIMENSION']) = 1;
WR13 : SIZEOF(TYPEOF(SELF.RelatedDraughtingCallout) * [
'IFC2X3.IFCANGULARDIMENSION',
'IFC2X3.IFCDIAMETERDIMENSION',
'IFC2X3.IFCLINEARDIMENSION',
'IFC2X3.IFCRADIUSDIMENSION']) = 1;
END_ENTITY;
ENTITY IfcDimensionalExponents;
LengthExponent : INTEGER;
MassExponent : INTEGER;
TimeExponent : INTEGER;
ElectricCurrentExponent : INTEGER;
ThermodynamicTemperatureExponent : INTEGER;
AmountOfSubstanceExponent : INTEGER;
LuminousIntensityExponent : INTEGER;
END_ENTITY;
ENTITY IfcDirection
SUBTYPE OF (IfcGeometricRepresentationItem);
DirectionRatios : LIST [2:3] OF REAL;
DERIVE
Dim : IfcDimensionCount := HIINDEX(DirectionRatios);
END_ENTITY;
ENTITY IfcDiscreteAccessory
SUBTYPE OF (IfcElementComponent);
END_ENTITY;
ENTITY IfcDiscreteAccessoryType
SUPERTYPE OF (ONEOF
(IfcVibrationIsolatorType))
SUBTYPE OF (IfcElementComponentType);
END_ENTITY;
ENTITY IfcDistributionChamberElement
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcDistributionChamberElementType
SUBTYPE OF (IfcDistributionFlowElementType);
PredefinedType : IfcDistributionChamberElementTypeEnum;
END_ENTITY;
ENTITY IfcDistributionControlElement
SUBTYPE OF (IfcDistributionElement);
ControlElementId : OPTIONAL IfcIdentifier;
INVERSE
AssignedToFlowElement : SET [0:1] OF IfcRelFlowControlElements FOR RelatedControlElements;
END_ENTITY;
ENTITY IfcDistributionControlElementType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcActuatorType
,IfcAlarmType
,IfcControllerType
,IfcFlowInstrumentType
,IfcSensorType))
SUBTYPE OF (IfcDistributionElementType);
END_ENTITY;
ENTITY IfcDistributionElement
SUPERTYPE OF (ONEOF
(IfcDistributionControlElement
,IfcDistributionFlowElement))
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcDistributionElementType
SUPERTYPE OF (ONEOF
(IfcDistributionControlElementType
,IfcDistributionFlowElementType))
SUBTYPE OF (IfcElementType);
END_ENTITY;
ENTITY IfcDistributionFlowElement
SUPERTYPE OF (ONEOF
(IfcDistributionChamberElement
,IfcEnergyConversionDevice
,IfcFlowController
,IfcFlowFitting
,IfcFlowMovingDevice
,IfcFlowSegment
,IfcFlowStorageDevice
,IfcFlowTerminal
,IfcFlowTreatmentDevice))
SUBTYPE OF (IfcDistributionElement);
INVERSE
HasControlElements : SET [0:1] OF IfcRelFlowControlElements FOR RelatingFlowElement;
END_ENTITY;
ENTITY IfcDistributionFlowElementType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDistributionChamberElementType
,IfcEnergyConversionDeviceType
,IfcFlowControllerType
,IfcFlowFittingType
,IfcFlowMovingDeviceType
,IfcFlowSegmentType
,IfcFlowStorageDeviceType
,IfcFlowTerminalType
,IfcFlowTreatmentDeviceType))
SUBTYPE OF (IfcDistributionElementType);
END_ENTITY;
ENTITY IfcDistributionPort
SUBTYPE OF (IfcPort);
FlowDirection : OPTIONAL IfcFlowDirectionEnum;
END_ENTITY;
ENTITY IfcDocumentElectronicFormat;
FileExtension : OPTIONAL IfcLabel;
MimeContentType : OPTIONAL IfcLabel;
MimeSubtype : OPTIONAL IfcLabel;
WHERE
WR1 : EXISTS(FileExtension) OR EXISTS(MimeContentType);
END_ENTITY;
ENTITY IfcDocumentInformation;
DocumentId : IfcIdentifier;
Name : IfcLabel;
Description : OPTIONAL IfcText;
DocumentReferences : OPTIONAL SET [1:?] OF IfcDocumentReference;
Purpose : OPTIONAL IfcText;
IntendedUse : OPTIONAL IfcText;
Scope : OPTIONAL IfcText;
Revision : OPTIONAL IfcLabel;
DocumentOwner : OPTIONAL IfcActorSelect;
Editors : OPTIONAL SET [1:?] OF IfcActorSelect;
CreationTime : OPTIONAL IfcDateAndTime;
LastRevisionTime : OPTIONAL IfcDateAndTime;
ElectronicFormat : OPTIONAL IfcDocumentElectronicFormat;
ValidFrom : OPTIONAL IfcCalendarDate;
ValidUntil : OPTIONAL IfcCalendarDate;
Confidentiality : OPTIONAL IfcDocumentConfidentialityEnum;
Status : OPTIONAL IfcDocumentStatusEnum;
INVERSE
IsPointedTo : SET [0:?] OF IfcDocumentInformationRelationship FOR RelatedDocuments;
IsPointer : SET [0:1] OF IfcDocumentInformationRelationship FOR RelatingDocument;
END_ENTITY;
ENTITY IfcDocumentInformationRelationship;
RelatingDocument : IfcDocumentInformation;
RelatedDocuments : SET [1:?] OF IfcDocumentInformation;
RelationshipType : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcDocumentReference
SUBTYPE OF (IfcExternalReference);
INVERSE
ReferenceToDocument : SET [0:1] OF IfcDocumentInformation FOR DocumentReferences;
WHERE
WR1 : EXISTS(Name) XOR EXISTS(ReferenceToDocument[1]);
END_ENTITY;
ENTITY IfcDoor
SUBTYPE OF (IfcBuildingElement);
OverallHeight : OPTIONAL IfcPositiveLengthMeasure;
OverallWidth : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcDoorLiningProperties
SUBTYPE OF (IfcPropertySetDefinition);
LiningDepth : OPTIONAL IfcPositiveLengthMeasure;
LiningThickness : OPTIONAL IfcPositiveLengthMeasure;
ThresholdDepth : OPTIONAL IfcPositiveLengthMeasure;
ThresholdThickness : OPTIONAL IfcPositiveLengthMeasure;
TransomThickness : OPTIONAL IfcPositiveLengthMeasure;
TransomOffset : OPTIONAL IfcLengthMeasure;
LiningOffset : OPTIONAL IfcLengthMeasure;
ThresholdOffset : OPTIONAL IfcLengthMeasure;
CasingThickness : OPTIONAL IfcPositiveLengthMeasure;
CasingDepth : OPTIONAL IfcPositiveLengthMeasure;
ShapeAspectStyle : OPTIONAL IfcShapeAspect;
WHERE
WR31 : NOT(NOT(EXISTS(LiningDepth)) AND EXISTS(LiningThickness));
WR32 : NOT(NOT(EXISTS(ThresholdDepth)) AND EXISTS(ThresholdThickness));
WR33 : (EXISTS(TransomOffset) AND EXISTS(TransomThickness)) XOR
(NOT(EXISTS(TransomOffset)) AND NOT(EXISTS(TransomThickness)));
WR34 : (EXISTS(CasingDepth) AND EXISTS(CasingThickness)) XOR
(NOT(EXISTS(CasingDepth)) AND NOT(EXISTS(CasingThickness)));
WR35 : EXISTS(SELF\IfcPropertySetDefinition.DefinesType[1]) AND
('IFC2X3.IFCDOORSTYLE' IN TYPEOF(SELF\IfcPropertySetDefinition.DefinesType[1]));
END_ENTITY;
ENTITY IfcDoorPanelProperties
SUBTYPE OF (IfcPropertySetDefinition);
PanelDepth : OPTIONAL IfcPositiveLengthMeasure;
PanelOperation : IfcDoorPanelOperationEnum;
PanelWidth : OPTIONAL IfcNormalisedRatioMeasure;
PanelPosition : IfcDoorPanelPositionEnum;
ShapeAspectStyle : OPTIONAL IfcShapeAspect;
WHERE
WR31 : EXISTS(SELF\IfcPropertySetDefinition.DefinesType[1]) AND
('IFC2X3.IFCDOORSTYLE' IN TYPEOF(SELF\IfcPropertySetDefinition.DefinesType[1]));
END_ENTITY;
ENTITY IfcDoorStyle
SUBTYPE OF (IfcTypeProduct);
OperationType : IfcDoorStyleOperationEnum;
ConstructionType : IfcDoorStyleConstructionEnum;
ParameterTakesPrecedence : BOOLEAN;
Sizeable : BOOLEAN;
END_ENTITY;
ENTITY IfcDraughtingCallout
SUPERTYPE OF (ONEOF
(IfcDimensionCurveDirectedCallout
,IfcStructuredDimensionCallout))
SUBTYPE OF (IfcGeometricRepresentationItem);
Contents : SET [1:?] OF IfcDraughtingCalloutElement;
INVERSE
IsRelatedFromCallout : SET [0:?] OF IfcDraughtingCalloutRelationship FOR RelatedDraughtingCallout;
IsRelatedToCallout : SET [0:?] OF IfcDraughtingCalloutRelationship FOR RelatingDraughtingCallout;
END_ENTITY;
ENTITY IfcDraughtingCalloutRelationship
SUPERTYPE OF (ONEOF
(IfcDimensionCalloutRelationship
,IfcDimensionPair));
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
RelatingDraughtingCallout : IfcDraughtingCallout;
RelatedDraughtingCallout : IfcDraughtingCallout;
END_ENTITY;
ENTITY IfcDraughtingPreDefinedColour
SUBTYPE OF (IfcPreDefinedColour);
WHERE
WR31 : SELF\IfcPreDefinedItem.Name IN ['black','red','green','blue','yellow',
'magenta','cyan','white','by layer'];
END_ENTITY;
ENTITY IfcDraughtingPreDefinedCurveFont
SUBTYPE OF (IfcPreDefinedCurveFont);
WHERE
WR31 : SELF\IfcPredefinedItem.Name IN
['continuous',
'chain',
'chain double dash',
'dashed',
'dotted',
'by layer'];
END_ENTITY;
ENTITY IfcDraughtingPreDefinedTextFont
SUBTYPE OF (IfcPreDefinedTextFont);
WHERE
WR31 : SELF\IfcPreDefinedItem.Name IN ['ISO 3098-1 font A','ISO 3098-1 font B'];
END_ENTITY;
ENTITY IfcDuctFittingType
SUBTYPE OF (IfcFlowFittingType);
PredefinedType : IfcDuctFittingTypeEnum;
WHERE
WR2 : (PredefinedType <> IfcDuctFittingTypeEnum.USERDEFINED) OR
((PredefinedType = IfcDuctFittingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcDuctSegmentType
SUBTYPE OF (IfcFlowSegmentType);
PredefinedType : IfcDuctSegmentTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcDuctSegmentTypeEnum.USERDEFINED) OR
((PredefinedType = IfcDuctSegmentTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcDuctSilencerType
SUBTYPE OF (IfcFlowTreatmentDeviceType);
PredefinedType : IfcDuctSilencerTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcDuctSilencerTypeEnum.USERDEFINED) OR
((PredefinedType = IfcDuctSilencerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcEdge
SUPERTYPE OF (ONEOF
(IfcEdgeCurve
,IfcOrientedEdge
,IfcSubedge))
SUBTYPE OF (IfcTopologicalRepresentationItem);
EdgeStart : IfcVertex;
EdgeEnd : IfcVertex;
END_ENTITY;
ENTITY IfcEdgeCurve
SUBTYPE OF (IfcEdge);
EdgeGeometry : IfcCurve;
SameSense : BOOLEAN;
END_ENTITY;
ENTITY IfcEdgeFeature
ABSTRACT SUPERTYPE OF (ONEOF
(IfcChamferEdgeFeature
,IfcRoundedEdgeFeature))
SUBTYPE OF (IfcFeatureElementSubtraction);
FeatureLength : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcEdgeLoop
SUBTYPE OF (IfcLoop);
EdgeList : LIST [1:?] OF IfcOrientedEdge;
DERIVE
Ne : INTEGER := SIZEOF(EdgeList);
WHERE
WR1 : (EdgeList[1].EdgeStart) :=: (EdgeList[Ne].EdgeEnd);
WR2 : IfcLoopHeadToTail(SELF);
END_ENTITY;
ENTITY IfcElectricApplianceType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcElectricApplianceTypeEnum;
END_ENTITY;
ENTITY IfcElectricDistributionPoint
SUBTYPE OF (IfcFlowController);
DistributionPointFunction : IfcElectricDistributionPointFunctionEnum;
UserDefinedFunction : OPTIONAL IfcLabel;
WHERE
WR31 : (DistributionPointFunction <> IfcElectricDistributionPointFunctionEnum.USERDEFINED) OR
((DistributionPointFunction = IfcElectricDistributionPointFunctionEnum.USERDEFINED) AND EXISTS(SELF\IfcElectricDistributionPoint.UserDefinedFunction));
END_ENTITY;
ENTITY IfcElectricFlowStorageDeviceType
SUBTYPE OF (IfcFlowStorageDeviceType);
PredefinedType : IfcElectricFlowStorageDeviceTypeEnum;
END_ENTITY;
ENTITY IfcElectricGeneratorType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcElectricGeneratorTypeEnum;
END_ENTITY;
ENTITY IfcElectricHeaterType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcElectricHeaterTypeEnum;
END_ENTITY;
ENTITY IfcElectricMotorType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcElectricMotorTypeEnum;
END_ENTITY;
ENTITY IfcElectricTimeControlType
SUBTYPE OF (IfcFlowControllerType);
PredefinedType : IfcElectricTimeControlTypeEnum;
END_ENTITY;
ENTITY IfcElectricalBaseProperties
SUBTYPE OF (IfcEnergyProperties);
ElectricCurrentType : OPTIONAL IfcElectricCurrentEnum;
InputVoltage : IfcElectricVoltageMeasure;
InputFrequency : IfcFrequencyMeasure;
FullLoadCurrent : OPTIONAL IfcElectricCurrentMeasure;
MinimumCircuitCurrent : OPTIONAL IfcElectricCurrentMeasure;
MaximumPowerInput : OPTIONAL IfcPowerMeasure;
RatedPowerInput : OPTIONAL IfcPowerMeasure;
InputPhase : INTEGER;
END_ENTITY;
ENTITY IfcElectricalCircuit
SUBTYPE OF (IfcSystem);
END_ENTITY;
ENTITY IfcElectricalElement
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcElement
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBuildingElement
,IfcDistributionElement
,IfcElectricalElement
,IfcElementAssembly
,IfcElementComponent
,IfcEquipmentElement
,IfcFeatureElement
,IfcFurnishingElement
,IfcTransportElement
,IfcVirtualElement))
SUBTYPE OF (IfcProduct);
Tag : OPTIONAL IfcIdentifier;
INVERSE
FillsVoids : SET [0:1] OF IfcRelFillsElement FOR RelatedBuildingElement;
ConnectedTo : SET [0:?] OF IfcRelConnectsElements FOR RelatingElement;
HasCoverings : SET [0:?] OF IfcRelCoversBldgElements FOR RelatingBuildingElement;
HasProjections : SET [0:?] OF IfcRelProjectsElement FOR RelatingElement;
HasStructuralMember : SET [0:?] OF IfcRelConnectsStructuralElement FOR RelatingElement;
ReferencedInStructures : SET [0:?] OF IfcRelReferencedInSpatialStructure FOR RelatedElements;
HasPorts : SET [0:?] OF IfcRelConnectsPortToElement FOR RelatedElement;
HasOpenings : SET [0:?] OF IfcRelVoidsElement FOR RelatingBuildingElement;
IsConnectionRealization : SET [0:?] OF IfcRelConnectsWithRealizingElements FOR RealizingElements;
ProvidesBoundaries : SET [0:?] OF IfcRelSpaceBoundary FOR RelatedBuildingElement;
ConnectedFrom : SET [0:?] OF IfcRelConnectsElements FOR RelatedElement;
ContainedInStructure : SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
END_ENTITY;
ENTITY IfcElementAssembly
SUBTYPE OF (IfcElement);
AssemblyPlace : OPTIONAL IfcAssemblyPlaceEnum;
PredefinedType : IfcElementAssemblyTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcElementAssemblyTypeEnum.USERDEFINED) OR ((PredefinedType = IfcElementAssemblyTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
END_ENTITY;
ENTITY IfcElementComponent
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDiscreteAccessory
,IfcFastener))
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcElementComponentType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDiscreteAccessoryType
,IfcFastenerType))
SUBTYPE OF (IfcElementType);
END_ENTITY;
ENTITY IfcElementQuantity
SUBTYPE OF (IfcPropertySetDefinition);
MethodOfMeasurement : OPTIONAL IfcLabel;
Quantities : SET [1:?] OF IfcPhysicalQuantity;
END_ENTITY;
ENTITY IfcElementType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBuildingElementType
,IfcDistributionElementType
,IfcElementComponentType
,IfcFurnishingElementType
,IfcSpatialStructureElementType
,IfcTransportElementType))
SUBTYPE OF (IfcTypeProduct);
ElementType : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcElementarySurface
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPlane))
SUBTYPE OF (IfcSurface);
Position : IfcAxis2Placement3D;
DERIVE
Dim : IfcDimensionCount := Position.Dim;
END_ENTITY;
ENTITY IfcEllipse
SUBTYPE OF (IfcConic);
SemiAxis1 : IfcPositiveLengthMeasure;
SemiAxis2 : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcEllipseProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
SemiAxis1 : IfcPositiveLengthMeasure;
SemiAxis2 : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcEnergyConversionDevice
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcEnergyConversionDeviceType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAirToAirHeatRecoveryType
,IfcBoilerType
,IfcChillerType
,IfcCoilType
,IfcCondenserType
,IfcCooledBeamType
,IfcCoolingTowerType
,IfcElectricGeneratorType
,IfcElectricMotorType
,IfcEvaporativeCoolerType
,IfcEvaporatorType
,IfcHeatExchangerType
,IfcHumidifierType
,IfcMotorConnectionType
,IfcSpaceHeaterType
,IfcTransformerType
,IfcTubeBundleType
,IfcUnitaryEquipmentType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcEnergyProperties
SUPERTYPE OF (ONEOF
(IfcElectricalBaseProperties))
SUBTYPE OF (IfcPropertySetDefinition);
EnergySequence : OPTIONAL IfcEnergySequenceEnum;
UserDefinedEnergySequence : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcEnvironmentalImpactValue
SUBTYPE OF (IfcAppliedValue);
ImpactType : IfcLabel;
Category : IfcEnvironmentalImpactCategoryEnum;
UserDefinedCategory : OPTIONAL IfcLabel;
WHERE
WR1 : (Category <> IfcEnvironmentalImpactCategoryEnum.USERDEFINED) OR
((Category = IfcEnvironmentalImpactCategoryEnum.USERDEFINED) AND EXISTS(SELF\IfcEnvironmentalImpactValue.UserDefinedCategory));
END_ENTITY;
ENTITY IfcEquipmentElement
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcEquipmentStandard
SUBTYPE OF (IfcControl);
END_ENTITY;
ENTITY IfcEvaporativeCoolerType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcEvaporativeCoolerTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcEvaporativeCoolerTypeEnum.USERDEFINED) OR
((PredefinedType = IfcEvaporativeCoolerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcEvaporatorType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcEvaporatorTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcEvaporatorTypeEnum.USERDEFINED) OR
((PredefinedType = IfcEvaporatorTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcExtendedMaterialProperties
SUBTYPE OF (IfcMaterialProperties);
ExtendedProperties : SET [1:?] OF IfcProperty;
Description : OPTIONAL IfcText;
Name : IfcLabel;
END_ENTITY;
ENTITY IfcExternalReference
ABSTRACT SUPERTYPE OF (ONEOF
(IfcClassificationReference
,IfcDocumentReference
,IfcExternallyDefinedHatchStyle
,IfcExternallyDefinedSurfaceStyle
,IfcExternallyDefinedSymbol
,IfcExternallyDefinedTextFont
,IfcLibraryReference));
Location : OPTIONAL IfcLabel;
ItemReference : OPTIONAL IfcIdentifier;
Name : OPTIONAL IfcLabel;
WHERE
WR1 : EXISTS(ItemReference) OR EXISTS(Location) OR EXISTS(Name);
END_ENTITY;
ENTITY IfcExternallyDefinedHatchStyle
SUBTYPE OF (IfcExternalReference);
END_ENTITY;
ENTITY IfcExternallyDefinedSurfaceStyle
SUBTYPE OF (IfcExternalReference);
END_ENTITY;
ENTITY IfcExternallyDefinedSymbol
SUBTYPE OF (IfcExternalReference);
END_ENTITY;
ENTITY IfcExternallyDefinedTextFont
SUBTYPE OF (IfcExternalReference);
END_ENTITY;
ENTITY IfcExtrudedAreaSolid
SUBTYPE OF (IfcSweptAreaSolid);
ExtrudedDirection : IfcDirection;
Depth : IfcPositiveLengthMeasure;
WHERE
WR31 : IfcDotProduct(IfcRepresentationItem() || IfcGeometricRepresentationItem() || IfcDirection([0.0,0.0,1.0]), SELF.ExtrudedDirection) <> 0.0;
END_ENTITY;
ENTITY IfcFace
SUPERTYPE OF (ONEOF
(IfcFaceSurface))
SUBTYPE OF (IfcTopologicalRepresentationItem);
Bounds : SET [1:?] OF IfcFaceBound;
WHERE
WR1 : SIZEOF(QUERY(temp <* Bounds | 'IFC2X3.IFCFACEOUTERBOUND' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcFaceBasedSurfaceModel
SUBTYPE OF (IfcGeometricRepresentationItem);
FbsmFaces : SET [1:?] OF IfcConnectedFaceSet;
DERIVE
Dim : IfcDimensionCount := 3;
END_ENTITY;
ENTITY IfcFaceBound
SUPERTYPE OF (ONEOF
(IfcFaceOuterBound))
SUBTYPE OF (IfcTopologicalRepresentationItem);
Bound : IfcLoop;
Orientation : BOOLEAN;
END_ENTITY;
ENTITY IfcFaceOuterBound
SUBTYPE OF (IfcFaceBound);
END_ENTITY;
ENTITY IfcFaceSurface
SUBTYPE OF (IfcFace);
FaceSurface : IfcSurface;
SameSense : BOOLEAN;
END_ENTITY;
ENTITY IfcFacetedBrep
SUBTYPE OF (IfcManifoldSolidBrep);
END_ENTITY;
ENTITY IfcFacetedBrepWithVoids
SUBTYPE OF (IfcManifoldSolidBrep);
Voids : SET [1:?] OF IfcClosedShell;
END_ENTITY;
ENTITY IfcFailureConnectionCondition
SUBTYPE OF (IfcStructuralConnectionCondition);
TensionFailureX : OPTIONAL IfcForceMeasure;
TensionFailureY : OPTIONAL IfcForceMeasure;
TensionFailureZ : OPTIONAL IfcForceMeasure;
CompressionFailureX : OPTIONAL IfcForceMeasure;
CompressionFailureY : OPTIONAL IfcForceMeasure;
CompressionFailureZ : OPTIONAL IfcForceMeasure;
END_ENTITY;
ENTITY IfcFanType
SUBTYPE OF (IfcFlowMovingDeviceType);
PredefinedType : IfcFanTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcFanTypeEnum.USERDEFINED) OR
((PredefinedType = IfcFanTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcFastener
SUPERTYPE OF (ONEOF
(IfcMechanicalFastener))
SUBTYPE OF (IfcElementComponent);
END_ENTITY;
ENTITY IfcFastenerType
SUPERTYPE OF (ONEOF
(IfcMechanicalFastenerType))
SUBTYPE OF (IfcElementComponentType);
END_ENTITY;
ENTITY IfcFeatureElement
ABSTRACT SUPERTYPE OF (ONEOF
(IfcFeatureElementAddition
,IfcFeatureElementSubtraction))
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcFeatureElementAddition
ABSTRACT SUPERTYPE OF (ONEOF
(IfcProjectionElement))
SUBTYPE OF (IfcFeatureElement);
INVERSE
ProjectsElements : IfcRelProjectsElement FOR RelatedFeatureElement;
END_ENTITY;
ENTITY IfcFeatureElementSubtraction
ABSTRACT SUPERTYPE OF (ONEOF
(IfcEdgeFeature
,IfcOpeningElement))
SUBTYPE OF (IfcFeatureElement);
INVERSE
VoidsElements : IfcRelVoidsElement FOR RelatedOpeningElement;
END_ENTITY;
ENTITY IfcFillAreaStyle
SUBTYPE OF (IfcPresentationStyle);
FillStyles : SET [1:?] OF IfcFillStyleSelect;
WHERE
WR11 : SIZEOF(QUERY(Style <* SELF.FillStyles |
'IFC2X3.IFCCOLOUR' IN
TYPEOF(Style)
)) <= 1;
WR12 : SIZEOF(QUERY(Style <* SELF.FillStyles |
'IFC2X3.IFCEXTERNALLYDEFINEDHATCHSTYLE' IN
TYPEOF(Style)
)) <= 1;
WR13 : (SIZEOF(QUERY(Style <* SELF.FillStyles |
'IFC2X3.IFCEXTERNALLYDEFINEDHATCHSTYLE' IN
TYPEOF(Style)
)) >= 1)
XOR
(SIZEOF(QUERY(Style <* SELF.FillStyles |
'IFC2X3.IFCFILLAREASTYLEHATCHING' IN
TYPEOF(Style)
)) >= 1)
XOR
(SIZEOF(QUERY(Style <* SELF.FillStyles |
'IFC2X3.IFCFILLAREASTYLETILES' IN
TYPEOF(Style)
)) >= 1);
END_ENTITY;
ENTITY IfcFillAreaStyleHatching
SUBTYPE OF (IfcGeometricRepresentationItem);
HatchLineAppearance : IfcCurveStyle;
StartOfNextHatchLine : IfcHatchLineDistanceSelect;
PointOfReferenceHatchLine : OPTIONAL IfcCartesianPoint;
PatternStart : OPTIONAL IfcCartesianPoint;
HatchLineAngle : IfcPlaneAngleMeasure;
WHERE
WR21 : NOT(
'IFC2X3.IFCTWODIRECTIONREPEATFACTOR'
IN TYPEOF(StartOfNextHatchLine)
);
WR22 : NOT(EXISTS(PatternStart))
OR (PatternStart.Dim = 2);
WR23 : NOT(EXISTS(PointOfReferenceHatchLine))
OR (PointOfReferenceHatchLine.Dim = 2);
END_ENTITY;
ENTITY IfcFillAreaStyleTileSymbolWithStyle
SUBTYPE OF (IfcGeometricRepresentationItem);
Symbol : IfcAnnotationSymbolOccurrence;
END_ENTITY;
ENTITY IfcFillAreaStyleTiles
SUBTYPE OF (IfcGeometricRepresentationItem);
TilingPattern : IfcOneDirectionRepeatFactor;
Tiles : SET [1:?] OF IfcFillAreaStyleTileShapeSelect;
TilingScale : IfcPositiveRatioMeasure;
END_ENTITY;
ENTITY IfcFilterType
SUBTYPE OF (IfcFlowTreatmentDeviceType);
PredefinedType : IfcFilterTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcFilterTypeEnum.USERDEFINED) OR
((PredefinedType = IfcFilterTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcFireSuppressionTerminalType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcFireSuppressionTerminalTypeEnum;
END_ENTITY;
ENTITY IfcFlowController
SUPERTYPE OF (ONEOF
(IfcElectricDistributionPoint))
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcFlowControllerType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAirTerminalBoxType
,IfcDamperType
,IfcElectricTimeControlType
,IfcFlowMeterType
,IfcProtectiveDeviceType
,IfcSwitchingDeviceType
,IfcValveType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcFlowFitting
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcFlowFittingType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCableCarrierFittingType
,IfcDuctFittingType
,IfcJunctionBoxType
,IfcPipeFittingType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcFlowInstrumentType
SUBTYPE OF (IfcDistributionControlElementType);
PredefinedType : IfcFlowInstrumentTypeEnum;
END_ENTITY;
ENTITY IfcFlowMeterType
SUBTYPE OF (IfcFlowControllerType);
PredefinedType : IfcFlowMeterTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcFlowMeterTypeEnum.USERDEFINED) OR
((PredefinedType = IfcFlowMeterTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcFlowMovingDevice
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcFlowMovingDeviceType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCompressorType
,IfcFanType
,IfcPumpType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcFlowSegment
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcFlowSegmentType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCableCarrierSegmentType
,IfcCableSegmentType
,IfcDuctSegmentType
,IfcPipeSegmentType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcFlowStorageDevice
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcFlowStorageDeviceType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcElectricFlowStorageDeviceType
,IfcTankType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcFlowTerminal
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcFlowTerminalType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAirTerminalType
,IfcElectricApplianceType
,IfcElectricHeaterType
,IfcFireSuppressionTerminalType
,IfcGasTerminalType
,IfcLampType
,IfcLightFixtureType
,IfcOutletType
,IfcSanitaryTerminalType
,IfcStackTerminalType
,IfcWasteTerminalType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcFlowTreatmentDevice
SUBTYPE OF (IfcDistributionFlowElement);
END_ENTITY;
ENTITY IfcFlowTreatmentDeviceType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDuctSilencerType
,IfcFilterType))
SUBTYPE OF (IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcFluidFlowProperties
SUBTYPE OF (IfcPropertySetDefinition);
PropertySource : IfcPropertySourceEnum;
FlowConditionTimeSeries : OPTIONAL IfcTimeSeries;
VelocityTimeSeries : OPTIONAL IfcTimeSeries;
FlowrateTimeSeries : OPTIONAL IfcTimeSeries;
Fluid : IfcMaterial;
PressureTimeSeries : OPTIONAL IfcTimeSeries;
UserDefinedPropertySource : OPTIONAL IfcLabel;
TemperatureSingleValue : OPTIONAL IfcThermodynamicTemperatureMeasure;
WetBulbTemperatureSingleValue : OPTIONAL IfcThermodynamicTemperatureMeasure;
WetBulbTemperatureTimeSeries : OPTIONAL IfcTimeSeries;
TemperatureTimeSeries : OPTIONAL IfcTimeSeries;
FlowrateSingleValue : OPTIONAL IfcDerivedMeasureValue;
FlowConditionSingleValue : OPTIONAL IfcPositiveRatioMeasure;
VelocitySingleValue : OPTIONAL IfcLinearVelocityMeasure;
PressureSingleValue : OPTIONAL IfcPressureMeasure;
END_ENTITY;
ENTITY IfcFooting
SUBTYPE OF (IfcBuildingElement);
PredefinedType : IfcFootingTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcFootingTypeEnum.USERDEFINED) OR ((PredefinedType = IfcFootingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
END_ENTITY;
ENTITY IfcFuelProperties
SUBTYPE OF (IfcMaterialProperties);
CombustionTemperature : OPTIONAL IfcThermodynamicTemperatureMeasure;
CarbonContent : OPTIONAL IfcPositiveRatioMeasure;
LowerHeatingValue : OPTIONAL IfcHeatingValueMeasure;
HigherHeatingValue : OPTIONAL IfcHeatingValueMeasure;
UNIQUE
UR11 : Material;
END_ENTITY;
ENTITY IfcFurnishingElement
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcFurnishingElementType
SUPERTYPE OF (ONEOF
(IfcFurnitureType
,IfcSystemFurnitureElementType))
SUBTYPE OF (IfcElementType);
END_ENTITY;
ENTITY IfcFurnitureStandard
SUBTYPE OF (IfcControl);
END_ENTITY;
ENTITY IfcFurnitureType
SUBTYPE OF (IfcFurnishingElementType);
AssemblyPlace : IfcAssemblyPlaceEnum;
END_ENTITY;
ENTITY IfcGasTerminalType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcGasTerminalTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcGasTerminalTypeEnum.USERDEFINED) OR
((PredefinedType = IfcGasTerminalTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcGeneralMaterialProperties
SUBTYPE OF (IfcMaterialProperties);
MolecularWeight : OPTIONAL IfcMolecularWeightMeasure;
Porosity : OPTIONAL IfcNormalisedRatioMeasure;
MassDensity : OPTIONAL IfcMassDensityMeasure;
UNIQUE
UR11 : Material;
END_ENTITY;
ENTITY IfcGeneralProfileProperties
SUPERTYPE OF (ONEOF
(IfcStructuralProfileProperties))
SUBTYPE OF (IfcProfileProperties);
PhysicalWeight : OPTIONAL IfcMassPerLengthMeasure;
Perimeter : OPTIONAL IfcPositiveLengthMeasure;
MinimumPlateThickness : OPTIONAL IfcPositiveLengthMeasure;
MaximumPlateThickness : OPTIONAL IfcPositiveLengthMeasure;
CrossSectionArea : OPTIONAL IfcAreaMeasure;
WHERE
WR1 : NOT(EXISTS(CrossSectionArea)) OR (CrossSectionArea > 0.);
END_ENTITY;
ENTITY IfcGeometricCurveSet
SUBTYPE OF (IfcGeometricSet);
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcGeometricSet.Elements |
'IFC2X3.IFCSURFACE' IN TYPEOF(Temp))) = 0;
END_ENTITY;
ENTITY IfcGeometricRepresentationContext
SUPERTYPE OF (ONEOF
(IfcGeometricRepresentationSubContext))
SUBTYPE OF (IfcRepresentationContext);
CoordinateSpaceDimension : IfcDimensionCount;
Precision : OPTIONAL REAL;
WorldCoordinateSystem : IfcAxis2Placement;
TrueNorth : OPTIONAL IfcDirection;
INVERSE
HasSubContexts : SET [0:?] OF IfcGeometricRepresentationSubContext FOR ParentContext;
END_ENTITY;
ENTITY IfcGeometricRepresentationItem
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAnnotationFillArea
,IfcAnnotationSurface
,IfcBooleanResult
,IfcBoundingBox
,IfcCartesianTransformationOperator
,IfcCompositeCurveSegment
,IfcCsgPrimitive3D
,IfcCurve
,IfcDefinedSymbol
,IfcDirection
,IfcDraughtingCallout
,IfcFaceBasedSurfaceModel
,IfcFillAreaStyleHatching
,IfcFillAreaStyleTileSymbolWithStyle
,IfcFillAreaStyleTiles
,IfcGeometricSet
,IfcHalfSpaceSolid
,IfcLightSource
,IfcOneDirectionRepeatFactor
,IfcPlacement
,IfcPlanarExtent
,IfcPoint
,IfcSectionedSpine
,IfcShellBasedSurfaceModel
,IfcSolidModel
,IfcSurface
,IfcTextLiteral
,IfcVector))
SUBTYPE OF (IfcRepresentationItem);
END_ENTITY;
ENTITY IfcGeometricRepresentationSubContext
SUBTYPE OF (IfcGeometricRepresentationContext);
ParentContext : IfcGeometricRepresentationContext;
TargetScale : OPTIONAL IfcPositiveRatioMeasure;
TargetView : IfcGeometricProjectionEnum;
UserDefinedTargetView : OPTIONAL IfcLabel;
DERIVE
SELF\IfcGeometricRepresentationContext.WorldCoordinateSystem : IfcAxis2Placement := ParentContext.WorldCoordinateSystem;
SELF\IfcGeometricRepresentationContext.CoordinateSpaceDimension : IfcDimensionCount := ParentContext.CoordinateSpaceDimension;
SELF\IfcGeometricRepresentationContext.TrueNorth : IfcDirection := NVL(ParentContext.TrueNorth,SELF.WorldCoordinateSystem.P[2]);
SELF\IfcGeometricRepresentationContext.Precision : REAL := NVL(ParentContext.Precision,1.E-5);
WHERE
WR31 : NOT('IFC2X3.IFCGEOMETRICREPRESENTATIONSUBCONTEXT' IN TYPEOF(ParentContext));
WR32 : (TargetView <> IfcGeometricProjectionEnum.USERDEFINED) OR
((TargetView = IfcGeometricProjectionEnum.USERDEFINED) AND
EXISTS(UserDefinedTargetView));
END_ENTITY;
ENTITY IfcGeometricSet
SUPERTYPE OF (ONEOF
(IfcGeometricCurveSet))
SUBTYPE OF (IfcGeometricRepresentationItem);
Elements : SET [1:?] OF IfcGeometricSetSelect;
DERIVE
Dim : IfcDimensionCount := Elements[1].Dim;
WHERE
WR21 : SIZEOF(QUERY(Temp <* Elements |
Temp.Dim <> Elements[1].Dim))
= 0;
END_ENTITY;
ENTITY IfcGrid
SUBTYPE OF (IfcProduct);
UAxes : LIST [1:?] OF UNIQUE IfcGridAxis;
VAxes : LIST [1:?] OF UNIQUE IfcGridAxis;
WAxes : OPTIONAL LIST [1:?] OF UNIQUE IfcGridAxis;
INVERSE
ContainedInStructure : SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
WHERE
WR41 : EXISTS(SELF\IfcProduct.ObjectPlacement);
END_ENTITY;
ENTITY IfcGridAxis;
AxisTag : OPTIONAL IfcLabel;
AxisCurve : IfcCurve;
SameSense : IfcBoolean;
INVERSE
PartOfW : SET [0:1] OF IfcGrid FOR WAxes;
PartOfV : SET [0:1] OF IfcGrid FOR VAxes;
PartOfU : SET [0:1] OF IfcGrid FOR UAxes;
HasIntersections : SET [0:?] OF IfcVirtualGridIntersection FOR IntersectingAxes;
WHERE
WR1 : AxisCurve.Dim = 2;
WR2 : (SIZEOF(PartOfU) = 1) XOR (SIZEOF(PartOfV) = 1) XOR (SIZEOF(PartOfW) = 1);
END_ENTITY;
ENTITY IfcGridPlacement
SUBTYPE OF (IfcObjectPlacement);
PlacementLocation : IfcVirtualGridIntersection;
PlacementRefDirection : OPTIONAL IfcVirtualGridIntersection;
END_ENTITY;
ENTITY IfcGroup
SUPERTYPE OF (ONEOF
(IfcAsset
,IfcCondition
,IfcInventory
,IfcStructuralLoadGroup
,IfcStructuralResultGroup
,IfcSystem
,IfcZone))
SUBTYPE OF (IfcObject);
INVERSE
IsGroupedBy : IfcRelAssignsToGroup FOR RelatingGroup;
END_ENTITY;
ENTITY IfcHalfSpaceSolid
SUPERTYPE OF (ONEOF
(IfcBoxedHalfSpace
,IfcPolygonalBoundedHalfSpace))
SUBTYPE OF (IfcGeometricRepresentationItem);
BaseSurface : IfcSurface;
AgreementFlag : BOOLEAN;
DERIVE
Dim : IfcDimensionCount := 3;
END_ENTITY;
ENTITY IfcHeatExchangerType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcHeatExchangerTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcHeatExchangerTypeEnum.USERDEFINED) OR
((PredefinedType = IfcHeatExchangerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcHumidifierType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcHumidifierTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcHumidifierTypeEnum.USERDEFINED) OR
((PredefinedType = IfcHumidifierTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcHygroscopicMaterialProperties
SUBTYPE OF (IfcMaterialProperties);
UpperVaporResistanceFactor : OPTIONAL IfcPositiveRatioMeasure;
LowerVaporResistanceFactor : OPTIONAL IfcPositiveRatioMeasure;
IsothermalMoistureCapacity : OPTIONAL IfcIsothermalMoistureCapacityMeasure;
VaporPermeability : OPTIONAL IfcVaporPermeabilityMeasure;
MoistureDiffusivity : OPTIONAL IfcMoistureDiffusivityMeasure;
UNIQUE
UR11 : Material;
END_ENTITY;
ENTITY IfcIShapeProfileDef
SUPERTYPE OF (ONEOF
(IfcAsymmetricIShapeProfileDef))
SUBTYPE OF (IfcParameterizedProfileDef);
OverallWidth : IfcPositiveLengthMeasure;
OverallDepth : IfcPositiveLengthMeasure;
WebThickness : IfcPositiveLengthMeasure;
FlangeThickness : IfcPositiveLengthMeasure;
FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR1 : FlangeThickness < (OverallDepth / 2.);
WR2 : WebThickness < OverallWidth;
WR3 : NOT(EXISTS(FilletRadius)) OR
((FilletRadius <= (OverallWidth - WebThickness)/2.) AND
(FilletRadius <= (OverallDepth - (2. * FlangeThickness))/2.));
END_ENTITY;
ENTITY IfcImageTexture
SUBTYPE OF (IfcSurfaceTexture);
UrlReference : IfcIdentifier;
END_ENTITY;
ENTITY IfcInventory
SUBTYPE OF (IfcGroup);
InventoryType : IfcInventoryTypeEnum;
Jurisdiction : IfcActorSelect;
ResponsiblePersons : SET [1:?] OF IfcPerson;
LastUpdateDate : IfcCalendarDate;
CurrentValue : OPTIONAL IfcCostValue;
OriginalValue : OPTIONAL IfcCostValue;
WHERE
WR41 : SIZEOF(QUERY(temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects |
NOT( ('IFC2X3.IFCSPACE' IN TYPEOF (temp)) OR
('IFC2X3.IFCASSET' IN TYPEOF (temp)) OR
('IFC2X3.IFCFURNISHINGELEMENT' IN TYPEOF (temp))
))) = 0;
END_ENTITY;
ENTITY IfcIrregularTimeSeries
SUBTYPE OF (IfcTimeSeries);
Values : LIST [1:?] OF IfcIrregularTimeSeriesValue;
END_ENTITY;
ENTITY IfcIrregularTimeSeriesValue;
TimeStamp : IfcDateTimeSelect;
ListValues : LIST [1:?] OF IfcValue;
END_ENTITY;
ENTITY IfcJunctionBoxType
SUBTYPE OF (IfcFlowFittingType);
PredefinedType : IfcJunctionBoxTypeEnum;
END_ENTITY;
ENTITY IfcLShapeProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
Depth : IfcPositiveLengthMeasure;
Width : OPTIONAL IfcPositiveLengthMeasure;
Thickness : IfcPositiveLengthMeasure;
FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
EdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
LegSlope : OPTIONAL IfcPlaneAngleMeasure;
CentreOfGravityInX : OPTIONAL IfcPositiveLengthMeasure;
CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR21 : Thickness < Depth;
WR22 : NOT(EXISTS(Width)) OR (Thickness < Width);
END_ENTITY;
ENTITY IfcLaborResource
SUBTYPE OF (IfcConstructionResource);
SkillSet : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcLampType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcLampTypeEnum;
END_ENTITY;
ENTITY IfcLibraryInformation;
Name : IfcLabel;
Version : OPTIONAL IfcLabel;
Publisher : OPTIONAL IfcOrganization;
VersionDate : OPTIONAL IfcCalendarDate;
LibraryReference : OPTIONAL SET [1:?] OF IfcLibraryReference;
END_ENTITY;
ENTITY IfcLibraryReference
SUBTYPE OF (IfcExternalReference);
INVERSE
ReferenceIntoLibrary : SET [0:1] OF IfcLibraryInformation FOR LibraryReference;
END_ENTITY;
ENTITY IfcLightDistributionData;
MainPlaneAngle : IfcPlaneAngleMeasure;
SecondaryPlaneAngle : LIST [1:?] OF IfcPlaneAngleMeasure;
LuminousIntensity : LIST [1:?] OF IfcLuminousIntensityDistributionMeasure;
END_ENTITY;
ENTITY IfcLightFixtureType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcLightFixtureTypeEnum;
END_ENTITY;
ENTITY IfcLightIntensityDistribution;
LightDistributionCurve : IfcLightDistributionCurveEnum;
DistributionData : LIST [1:?] OF IfcLightDistributionData;
END_ENTITY;
ENTITY IfcLightSource
ABSTRACT SUPERTYPE OF (ONEOF
(IfcLightSourceAmbient
,IfcLightSourceDirectional
,IfcLightSourceGoniometric
,IfcLightSourcePositional))
SUBTYPE OF (IfcGeometricRepresentationItem);
Name : OPTIONAL IfcLabel;
LightColour : IfcColourRgb;
AmbientIntensity : OPTIONAL IfcNormalisedRatioMeasure;
Intensity : OPTIONAL IfcNormalisedRatioMeasure;
END_ENTITY;
ENTITY IfcLightSourceAmbient
SUBTYPE OF (IfcLightSource);
END_ENTITY;
ENTITY IfcLightSourceDirectional
SUBTYPE OF (IfcLightSource);
Orientation : IfcDirection;
END_ENTITY;
ENTITY IfcLightSourceGoniometric
SUBTYPE OF (IfcLightSource);
Position : IfcAxis2Placement3D;
ColourAppearance : OPTIONAL IfcColourRgb;
ColourTemperature : IfcThermodynamicTemperatureMeasure;
LuminousFlux : IfcLuminousFluxMeasure;
LightEmissionSource : IfcLightEmissionSourceEnum;
LightDistributionDataSource : IfcLightDistributionDataSourceSelect;
END_ENTITY;
ENTITY IfcLightSourcePositional
SUPERTYPE OF (ONEOF
(IfcLightSourceSpot))
SUBTYPE OF (IfcLightSource);
Position : IfcCartesianPoint;
Radius : IfcPositiveLengthMeasure;
ConstantAttenuation : IfcReal;
DistanceAttenuation : IfcReal;
QuadricAttenuation : IfcReal;
END_ENTITY;
ENTITY IfcLightSourceSpot
SUBTYPE OF (IfcLightSourcePositional);
Orientation : IfcDirection;
ConcentrationExponent : OPTIONAL IfcReal;
SpreadAngle : IfcPositivePlaneAngleMeasure;
BeamWidthAngle : IfcPositivePlaneAngleMeasure;
END_ENTITY;
ENTITY IfcLine
SUBTYPE OF (IfcCurve);
Pnt : IfcCartesianPoint;
Dir : IfcVector;
WHERE
WR1 : Dir.Dim = Pnt.Dim;
END_ENTITY;
ENTITY IfcLinearDimension
SUBTYPE OF (IfcDimensionCurveDirectedCallout);
END_ENTITY;
ENTITY IfcLocalPlacement
SUBTYPE OF (IfcObjectPlacement);
PlacementRelTo : OPTIONAL IfcObjectPlacement;
RelativePlacement : IfcAxis2Placement;
WHERE
WR21 : IfcCorrectLocalPlacement(RelativePlacement, PlacementRelTo);
END_ENTITY;
ENTITY IfcLocalTime;
HourComponent : IfcHourInDay;
MinuteComponent : OPTIONAL IfcMinuteInHour;
SecondComponent : OPTIONAL IfcSecondInMinute;
Zone : OPTIONAL IfcCoordinatedUniversalTimeOffset;
DaylightSavingOffset : OPTIONAL IfcDaylightSavingHour;
WHERE
WR21 : IfcValidTime (SELF);
END_ENTITY;
ENTITY IfcLoop
SUPERTYPE OF (ONEOF
(IfcEdgeLoop
,IfcPolyLoop
,IfcVertexLoop))
SUBTYPE OF (IfcTopologicalRepresentationItem);
END_ENTITY;
ENTITY IfcManifoldSolidBrep
ABSTRACT SUPERTYPE OF (ONEOF
(IfcFacetedBrep
,IfcFacetedBrepWithVoids))
SUBTYPE OF (IfcSolidModel);
Outer : IfcClosedShell;
END_ENTITY;
ENTITY IfcMappedItem
SUBTYPE OF (IfcRepresentationItem);
MappingSource : IfcRepresentationMap;
MappingTarget : IfcCartesianTransformationOperator;
END_ENTITY;
ENTITY IfcMaterial;
Name : IfcLabel;
INVERSE
HasRepresentation : SET [0:1] OF IfcMaterialDefinitionRepresentation FOR RepresentedMaterial;
ClassifiedAs : SET [0:1] OF IfcMaterialClassificationRelationship FOR ClassifiedMaterial;
END_ENTITY;
ENTITY IfcMaterialClassificationRelationship;
MaterialClassifications : SET [1:?] OF IfcClassificationNotationSelect;
ClassifiedMaterial : IfcMaterial;
END_ENTITY;
ENTITY IfcMaterialDefinitionRepresentation
SUBTYPE OF (IfcProductRepresentation);
RepresentedMaterial : IfcMaterial;
WHERE
WR11 : SIZEOF(QUERY(temp <* Representations |
(NOT('IFC2X3.IFCSTYLEDREPRESENTATION' IN TYPEOF(temp)))
)) = 0;
END_ENTITY;
ENTITY IfcMaterialLayer;
Material : OPTIONAL IfcMaterial;
LayerThickness : IfcPositiveLengthMeasure;
IsVentilated : OPTIONAL IfcLogical;
INVERSE
ToMaterialLayerSet : IfcMaterialLayerSet FOR MaterialLayers;
END_ENTITY;
ENTITY IfcMaterialLayerSet;
MaterialLayers : LIST [1:?] OF IfcMaterialLayer;
LayerSetName : OPTIONAL IfcLabel;
DERIVE
TotalThickness : IfcLengthMeasure := IfcMlsTotalThickness(SELF);
END_ENTITY;
ENTITY IfcMaterialLayerSetUsage;
ForLayerSet : IfcMaterialLayerSet;
LayerSetDirection : IfcLayerSetDirectionEnum;
DirectionSense : IfcDirectionSenseEnum;
OffsetFromReferenceLine : IfcLengthMeasure;
END_ENTITY;
ENTITY IfcMaterialList;
Materials : LIST [1:?] OF IfcMaterial;
END_ENTITY;
ENTITY IfcMaterialProperties
ABSTRACT SUPERTYPE OF (ONEOF
(IfcExtendedMaterialProperties
,IfcFuelProperties
,IfcGeneralMaterialProperties
,IfcHygroscopicMaterialProperties
,IfcMechanicalMaterialProperties
,IfcOpticalMaterialProperties
,IfcProductsOfCombustionProperties
,IfcThermalMaterialProperties
,IfcWaterProperties));
Material : IfcMaterial;
END_ENTITY;
ENTITY IfcMeasureWithUnit;
ValueComponent : IfcValue;
UnitComponent : IfcUnit;
END_ENTITY;
ENTITY IfcMechanicalConcreteMaterialProperties
SUBTYPE OF (IfcMechanicalMaterialProperties);
CompressiveStrength : OPTIONAL IfcPressureMeasure;
MaxAggregateSize : OPTIONAL IfcPositiveLengthMeasure;
AdmixturesDescription : OPTIONAL IfcText;
Workability : OPTIONAL IfcText;
ProtectivePoreRatio : OPTIONAL IfcNormalisedRatioMeasure;
WaterImpermeability : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcMechanicalFastener
SUBTYPE OF (IfcFastener);
NominalDiameter : OPTIONAL IfcPositiveLengthMeasure;
NominalLength : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcMechanicalFastenerType
SUBTYPE OF (IfcFastenerType);
END_ENTITY;
ENTITY IfcMechanicalMaterialProperties
SUPERTYPE OF (ONEOF
(IfcMechanicalConcreteMaterialProperties
,IfcMechanicalSteelMaterialProperties))
SUBTYPE OF (IfcMaterialProperties);
DynamicViscosity : OPTIONAL IfcDynamicViscosityMeasure;
YoungModulus : OPTIONAL IfcModulusOfElasticityMeasure;
ShearModulus : OPTIONAL IfcModulusOfElasticityMeasure;
PoissonRatio : OPTIONAL IfcPositiveRatioMeasure;
ThermalExpansionCoefficient : OPTIONAL IfcThermalExpansionCoefficientMeasure;
UNIQUE
UR11 : Material;
WHERE
WR21 : NOT(EXISTS(YoungModulus)) OR (YoungModulus >= 0.0);
WR22 : NOT(EXISTS(ShearModulus)) OR (ShearModulus >= 0.0);
END_ENTITY;
ENTITY IfcMechanicalSteelMaterialProperties
SUBTYPE OF (IfcMechanicalMaterialProperties);
YieldStress : OPTIONAL IfcPressureMeasure;
UltimateStress : OPTIONAL IfcPressureMeasure;
UltimateStrain : OPTIONAL IfcPositiveRatioMeasure;
HardeningModule : OPTIONAL IfcModulusOfElasticityMeasure;
ProportionalStress : OPTIONAL IfcPressureMeasure;
PlasticStrain : OPTIONAL IfcPositiveRatioMeasure;
Relaxations : OPTIONAL SET [1:?] OF IfcRelaxation;
WHERE
WR31 : NOT(EXISTS(YieldStress)) OR (YieldStress >= 0.);
WR32 : NOT(EXISTS(UltimateStress)) OR (UltimateStress >= 0.);
WR33 : NOT(EXISTS(HardeningModule)) OR (HardeningModule >= 0.);
WR34 : NOT(EXISTS(ProportionalStress)) OR (ProportionalStress >= 0.);
END_ENTITY;
ENTITY IfcMember
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
ENTITY IfcMemberType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcMemberTypeEnum;
END_ENTITY;
ENTITY IfcMetric
SUBTYPE OF (IfcConstraint);
Benchmark : IfcBenchmarkEnum;
ValueSource : OPTIONAL IfcLabel;
DataValue : IfcMetricValueSelect;
END_ENTITY;
ENTITY IfcMonetaryUnit;
Currency : IfcCurrencyEnum;
END_ENTITY;
ENTITY IfcMotorConnectionType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcMotorConnectionTypeEnum;
END_ENTITY;
ENTITY IfcMove
SUBTYPE OF (IfcTask);
MoveFrom : IfcSpatialStructureElement;
MoveTo : IfcSpatialStructureElement;
PunchList : OPTIONAL LIST [1:?] OF UNIQUE IfcText;
WHERE
WR1 : SIZEOF(SELF\IfcProcess.OperatesOn) >= 1;
WR2 : SIZEOF(QUERY(temp <* OperatesOn |
SIZEOF(QUERY(temp2 <* temp.RelatedObjects |
('IFC2X3.IFCACTOR' IN TYPEOF (temp2)) OR
('IFC2X3.IFCEQUIPMENTELEMENT' IN TYPEOF (temp2)) OR
('IFC2X3.IFCFURNISHINGELEMENT' IN TYPEOF (temp2)) )) >=1
)) >= 1;
WR3 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcNamedUnit
ABSTRACT SUPERTYPE OF (ONEOF
(IfcContextDependentUnit
,IfcConversionBasedUnit
,IfcSIUnit));
Dimensions : IfcDimensionalExponents;
UnitType : IfcUnitEnum;
WHERE
WR1 : IfcCorrectDimensions (SELF.UnitType, SELF.Dimensions);
END_ENTITY;
ENTITY IfcObject
ABSTRACT SUPERTYPE OF (ONEOF
(IfcActor
,IfcControl
,IfcGroup
,IfcProcess
,IfcProduct
,IfcProject
,IfcResource))
SUBTYPE OF (IfcObjectDefinition);
ObjectType : OPTIONAL IfcLabel;
INVERSE
IsDefinedBy : SET [0:?] OF IfcRelDefines FOR RelatedObjects;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X3.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcObjectDefinition
ABSTRACT SUPERTYPE OF (ONEOF
(IfcObject
,IfcTypeObject))
SUBTYPE OF (IfcRoot);
INVERSE
HasAssignments : SET [0:?] OF IfcRelAssigns FOR RelatedObjects;
IsDecomposedBy : SET [0:?] OF IfcRelDecomposes FOR RelatingObject;
Decomposes : SET [0:1] OF IfcRelDecomposes FOR RelatedObjects;
HasAssociations : SET [0:?] OF IfcRelAssociates FOR RelatedObjects;
END_ENTITY;
ENTITY IfcObjectPlacement
ABSTRACT SUPERTYPE OF (ONEOF
(IfcGridPlacement
,IfcLocalPlacement));
INVERSE
PlacesObject : SET [1:1] OF IfcProduct FOR ObjectPlacement;
ReferencedByPlacements : SET [0:?] OF IfcLocalPlacement FOR PlacementRelTo;
END_ENTITY;
ENTITY IfcObjective
SUBTYPE OF (IfcConstraint);
BenchmarkValues : OPTIONAL IfcMetric;
ResultValues : OPTIONAL IfcMetric;
ObjectiveQualifier : IfcObjectiveEnum;
UserDefinedQualifier : OPTIONAL IfcLabel;
WHERE
WR21 : (ObjectiveQualifier <> IfcObjectiveEnum.USERDEFINED) OR
((ObjectiveQualifier = IfcObjectiveEnum.USERDEFINED) AND EXISTS(SELF\IfcObjective.UserDefinedQualifier));
END_ENTITY;
ENTITY IfcOccupant
SUBTYPE OF (IfcActor);
PredefinedType : IfcOccupantTypeEnum;
WHERE
WR31 : NOT(PredefinedType = IfcOccupantTypeEnum.USERDEFINED)
OR EXISTS(SELF\IfcObject.ObjectType);
END_ENTITY;
ENTITY IfcOffsetCurve2D
SUBTYPE OF (IfcCurve);
BasisCurve : IfcCurve;
Distance : IfcLengthMeasure;
SelfIntersect : LOGICAL;
WHERE
WR1 : BasisCurve.Dim = 2;
END_ENTITY;
ENTITY IfcOffsetCurve3D
SUBTYPE OF (IfcCurve);
BasisCurve : IfcCurve;
Distance : IfcLengthMeasure;
SelfIntersect : LOGICAL;
RefDirection : IfcDirection;
WHERE
WR1 : BasisCurve.Dim = 3;
END_ENTITY;
ENTITY IfcOneDirectionRepeatFactor
SUPERTYPE OF (ONEOF
(IfcTwoDirectionRepeatFactor))
SUBTYPE OF (IfcGeometricRepresentationItem);
RepeatFactor : IfcVector;
END_ENTITY;
ENTITY IfcOpenShell
SUBTYPE OF (IfcConnectedFaceSet);
END_ENTITY;
ENTITY IfcOpeningElement
SUBTYPE OF (IfcFeatureElementSubtraction);
INVERSE
HasFillings : SET [0:?] OF IfcRelFillsElement FOR RelatingOpeningElement;
END_ENTITY;
ENTITY IfcOpticalMaterialProperties
SUBTYPE OF (IfcMaterialProperties);
VisibleTransmittance : OPTIONAL IfcPositiveRatioMeasure;
SolarTransmittance : OPTIONAL IfcPositiveRatioMeasure;
ThermalIrTransmittance : OPTIONAL IfcPositiveRatioMeasure;
ThermalIrEmissivityBack : OPTIONAL IfcPositiveRatioMeasure;
ThermalIrEmissivityFront : OPTIONAL IfcPositiveRatioMeasure;
VisibleReflectanceBack : OPTIONAL IfcPositiveRatioMeasure;
VisibleReflectanceFront : OPTIONAL IfcPositiveRatioMeasure;
SolarReflectanceFront : OPTIONAL IfcPositiveRatioMeasure;
SolarReflectanceBack : OPTIONAL IfcPositiveRatioMeasure;
UNIQUE
UR11 : Material;
END_ENTITY;
ENTITY IfcOrderAction
SUBTYPE OF (IfcTask);
ActionID : IfcIdentifier;
UNIQUE
UR2 : ActionID;
END_ENTITY;
ENTITY IfcOrganization;
Id : OPTIONAL IfcIdentifier;
Name : IfcLabel;
Description : OPTIONAL IfcText;
Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
Addresses : OPTIONAL LIST [1:?] OF IfcAddress;
INVERSE
IsRelatedBy : SET [0:?] OF IfcOrganizationRelationship FOR RelatedOrganizations;
Relates : SET [0:?] OF IfcOrganizationRelationship FOR RelatingOrganization;
Engages : SET [0:?] OF IfcPersonAndOrganization FOR TheOrganization;
END_ENTITY;
ENTITY IfcOrganizationRelationship;
Name : IfcLabel;
Description : OPTIONAL IfcText;
RelatingOrganization : IfcOrganization;
RelatedOrganizations : SET [1:?] OF IfcOrganization;
END_ENTITY;
ENTITY IfcOrientedEdge
SUBTYPE OF (IfcEdge);
EdgeElement : IfcEdge;
Orientation : BOOLEAN;
DERIVE
SELF\IfcEdge.EdgeStart : IfcVertex := IfcBooleanChoose
(Orientation, EdgeElement.EdgeStart, EdgeElement.EdgeEnd);
SELF\IfcEdge.EdgeEnd : IfcVertex := IfcBooleanChoose
(Orientation, EdgeElement.EdgeEnd, EdgeElement.EdgeStart);
WHERE
WR1 : NOT('IFC2X3.IFCORIENTEDEDGE' IN TYPEOF(EdgeElement));
END_ENTITY;
ENTITY IfcOutletType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcOutletTypeEnum;
END_ENTITY;
ENTITY IfcOwnerHistory;
OwningUser : IfcPersonAndOrganization;
OwningApplication : IfcApplication;
State : OPTIONAL IfcStateEnum;
ChangeAction : IfcChangeActionEnum;
LastModifiedDate : OPTIONAL IfcTimeStamp;
LastModifyingUser : OPTIONAL IfcPersonAndOrganization;
LastModifyingApplication : OPTIONAL IfcApplication;
CreationDate : IfcTimeStamp;
END_ENTITY;
ENTITY IfcParameterizedProfileDef
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCShapeProfileDef
,IfcCircleProfileDef
,IfcCraneRailAShapeProfileDef
,IfcCraneRailFShapeProfileDef
,IfcEllipseProfileDef
,IfcIShapeProfileDef
,IfcLShapeProfileDef
,IfcRectangleProfileDef
,IfcTShapeProfileDef
,IfcTrapeziumProfileDef
,IfcUShapeProfileDef
,IfcZShapeProfileDef))
SUBTYPE OF (IfcProfileDef);
Position : IfcAxis2Placement2D;
END_ENTITY;
ENTITY IfcPath
SUBTYPE OF (IfcTopologicalRepresentationItem);
EdgeList : LIST [1:?] OF UNIQUE IfcOrientedEdge;
WHERE
WR1 : IfcPathHeadToTail(SELF);
END_ENTITY;
ENTITY IfcPerformanceHistory
SUBTYPE OF (IfcControl);
LifeCyclePhase : IfcLabel;
END_ENTITY;
ENTITY IfcPermeableCoveringProperties
SUBTYPE OF (IfcPropertySetDefinition);
OperationType : IfcPermeableCoveringOperationEnum;
PanelPosition : IfcWindowPanelPositionEnum;
FrameDepth : OPTIONAL IfcPositiveLengthMeasure;
FrameThickness : OPTIONAL IfcPositiveLengthMeasure;
ShapeAspectStyle : OPTIONAL IfcShapeAspect;
END_ENTITY;
ENTITY IfcPermit
SUBTYPE OF (IfcControl);
PermitID : IfcIdentifier;
UNIQUE
UR2 : PermitID;
END_ENTITY;
ENTITY IfcPerson;
Id : OPTIONAL IfcIdentifier;
FamilyName : OPTIONAL IfcLabel;
GivenName : OPTIONAL IfcLabel;
MiddleNames : OPTIONAL LIST [1:?] OF IfcLabel;
PrefixTitles : OPTIONAL LIST [1:?] OF IfcLabel;
SuffixTitles : OPTIONAL LIST [1:?] OF IfcLabel;
Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
Addresses : OPTIONAL LIST [1:?] OF IfcAddress;
INVERSE
EngagedIn : SET [0:?] OF IfcPersonAndOrganization FOR ThePerson;
WHERE
WR1 : EXISTS(FamilyName) OR
EXISTS(GivenName);
END_ENTITY;
ENTITY IfcPersonAndOrganization;
ThePerson : IfcPerson;
TheOrganization : IfcOrganization;
Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
END_ENTITY;
ENTITY IfcPhysicalComplexQuantity
SUBTYPE OF (IfcPhysicalQuantity);
HasQuantities : SET [1:?] OF IfcPhysicalQuantity;
Discrimination : IfcLabel;
Quality : OPTIONAL IfcLabel;
Usage : OPTIONAL IfcLabel;
WHERE
WR21 : SIZEOF(QUERY(temp <* HasQuantities | SELF :=: temp)) = 0;
END_ENTITY;
ENTITY IfcPhysicalQuantity
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPhysicalComplexQuantity
,IfcPhysicalSimpleQuantity));
Name : IfcLabel;
Description : OPTIONAL IfcText;
INVERSE
PartOfComplex : SET [0:1] OF IfcPhysicalComplexQuantity FOR HasQuantities;
END_ENTITY;
ENTITY IfcPhysicalSimpleQuantity
ABSTRACT SUPERTYPE OF (ONEOF
(IfcQuantityArea
,IfcQuantityCount
,IfcQuantityLength
,IfcQuantityTime
,IfcQuantityVolume
,IfcQuantityWeight))
SUBTYPE OF (IfcPhysicalQuantity);
Unit : OPTIONAL IfcNamedUnit;
END_ENTITY;
ENTITY IfcPile
SUBTYPE OF (IfcBuildingElement);
PredefinedType : IfcPileTypeEnum;
ConstructionType : OPTIONAL IfcPileConstructionEnum;
WHERE
WR1 : (PredefinedType <> IfcPileTypeEnum.USERDEFINED) OR ((PredefinedType = IfcPileTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
END_ENTITY;
ENTITY IfcPipeFittingType
SUBTYPE OF (IfcFlowFittingType);
PredefinedType : IfcPipeFittingTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcPipeFittingTypeEnum.USERDEFINED) OR
((PredefinedType = IfcPipeFittingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcPipeSegmentType
SUBTYPE OF (IfcFlowSegmentType);
PredefinedType : IfcPipeSegmentTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcPipeSegmentTypeEnum.USERDEFINED) OR
((PredefinedType = IfcPipeSegmentTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcPixelTexture
SUBTYPE OF (IfcSurfaceTexture);
Width : IfcInteger;
Height : IfcInteger;
ColourComponents : IfcInteger;
Pixel : LIST [1:?] OF BINARY(32);
WHERE
WR21 : Width >= 1;
WR22 : Height >= 1;
WR23 : {1 <= ColourComponents <= 4};
WR24 : SIZEOF(Pixel) = (Width * Height);
END_ENTITY;
ENTITY IfcPlacement
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAxis1Placement
,IfcAxis2Placement2D
,IfcAxis2Placement3D))
SUBTYPE OF (IfcGeometricRepresentationItem);
Location : IfcCartesianPoint;
DERIVE
Dim : IfcDimensionCount := Location.Dim;
END_ENTITY;
ENTITY IfcPlanarBox
SUBTYPE OF (IfcPlanarExtent);
Placement : IfcAxis2Placement;
END_ENTITY;
ENTITY IfcPlanarExtent
SUPERTYPE OF (ONEOF
(IfcPlanarBox))
SUBTYPE OF (IfcGeometricRepresentationItem);
SizeInX : IfcLengthMeasure;
SizeInY : IfcLengthMeasure;
END_ENTITY;
ENTITY IfcPlane
SUBTYPE OF (IfcElementarySurface);
END_ENTITY;
ENTITY IfcPlate
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
ENTITY IfcPlateType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcPlateTypeEnum;
WHERE
WR1 : SIZEOF (QUERY(temp <* SELF\IfcObjectDefinition.HasAssociations | 'IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(temp) )) = 1;
END_ENTITY;
ENTITY IfcPoint
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCartesianPoint
,IfcPointOnCurve
,IfcPointOnSurface))
SUBTYPE OF (IfcGeometricRepresentationItem);
END_ENTITY;
ENTITY IfcPointOnCurve
SUBTYPE OF (IfcPoint);
BasisCurve : IfcCurve;
PointParameter : IfcParameterValue;
DERIVE
Dim : IfcDimensionCount := BasisCurve.Dim;
END_ENTITY;
ENTITY IfcPointOnSurface
SUBTYPE OF (IfcPoint);
BasisSurface : IfcSurface;
PointParameterU : IfcParameterValue;
PointParameterV : IfcParameterValue;
DERIVE
Dim : IfcDimensionCount := BasisSurface.Dim;
END_ENTITY;
ENTITY IfcPolyLoop
SUBTYPE OF (IfcLoop);
Polygon : LIST [3:?] OF UNIQUE IfcCartesianPoint;
WHERE
WR21 : SIZEOF(QUERY(Temp <* Polygon | Temp.Dim <> Polygon[1].Dim)) = 0;
END_ENTITY;
ENTITY IfcPolygonalBoundedHalfSpace
SUBTYPE OF (IfcHalfSpaceSolid);
Position : IfcAxis2Placement3D;
PolygonalBoundary : IfcBoundedCurve;
WHERE
WR41 : PolygonalBoundary.Dim = 2;
WR42 : SIZEOF(TYPEOF(PolygonalBoundary) * [
'IFC2X3.IFCPOLYLINE',
'IFC2X3.IFCCOMPOSITECURVE']
) = 1;
END_ENTITY;
ENTITY IfcPolyline
SUBTYPE OF (IfcBoundedCurve);
Points : LIST [2:?] OF IfcCartesianPoint;
WHERE
WR41 : SIZEOF(QUERY(Temp <* Points | Temp.Dim <> Points[1].Dim)) = 0;
END_ENTITY;
ENTITY IfcPort
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDistributionPort))
SUBTYPE OF (IfcProduct);
INVERSE
ContainedIn : IfcRelConnectsPortToElement FOR RelatingPort;
ConnectedFrom : SET [0:1] OF IfcRelConnectsPorts FOR RelatedPort;
ConnectedTo : SET [0:1] OF IfcRelConnectsPorts FOR RelatingPort;
END_ENTITY;
ENTITY IfcPostalAddress
SUBTYPE OF (IfcAddress);
InternalLocation : OPTIONAL IfcLabel;
AddressLines : OPTIONAL LIST [1:?] OF IfcLabel;
PostalBox : OPTIONAL IfcLabel;
Town : OPTIONAL IfcLabel;
Region : OPTIONAL IfcLabel;
PostalCode : OPTIONAL IfcLabel;
Country : OPTIONAL IfcLabel;
WHERE
WR1 : EXISTS (InternalLocation) OR
EXISTS (AddressLines) OR
EXISTS (PostalBox) OR
EXISTS (PostalCode) OR
EXISTS (Town) OR
EXISTS (Region) OR
EXISTS (Country);
END_ENTITY;
ENTITY IfcPreDefinedColour
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDraughtingPreDefinedColour))
SUBTYPE OF (IfcPreDefinedItem);
END_ENTITY;
ENTITY IfcPreDefinedCurveFont
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDraughtingPreDefinedCurveFont))
SUBTYPE OF (IfcPreDefinedItem);
END_ENTITY;
ENTITY IfcPreDefinedDimensionSymbol
SUBTYPE OF (IfcPreDefinedSymbol);
WHERE
WR31 : SELF\IfcPreDefinedItem.Name IN ['arc length','conical taper','counterbore',
'countersink','depth','diameter','plus minus','radius',
'slope','spherical diameter','spherical radius','square'];
END_ENTITY;
ENTITY IfcPreDefinedItem
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPreDefinedColour
,IfcPreDefinedCurveFont
,IfcPreDefinedSymbol
,IfcPreDefinedTextFont));
Name : IfcLabel;
END_ENTITY;
ENTITY IfcPreDefinedPointMarkerSymbol
SUBTYPE OF (IfcPreDefinedSymbol);
WHERE
WR31 : SELF\IfcPreDefinedItem.Name IN ['asterisk','circle','dot','plus','square','triangle','x'];
END_ENTITY;
ENTITY IfcPreDefinedSymbol
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPreDefinedDimensionSymbol
,IfcPreDefinedPointMarkerSymbol
,IfcPreDefinedTerminatorSymbol))
SUBTYPE OF (IfcPreDefinedItem);
END_ENTITY;
ENTITY IfcPreDefinedTerminatorSymbol
SUBTYPE OF (IfcPreDefinedSymbol);
WHERE
WR31 : SELF\IfcPreDefinedItem.Name IN ['blanked arrow','blanked box',
'blanked dot','dimension origin','filled arrow','filled box',
'filled dot','integral symbol','open arrow','slash','unfilled arrow'];
END_ENTITY;
ENTITY IfcPreDefinedTextFont
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDraughtingPreDefinedTextFont
,IfcTextStyleFontModel))
SUBTYPE OF (IfcPreDefinedItem);
END_ENTITY;
ENTITY IfcPresentationLayerAssignment
SUPERTYPE OF (ONEOF
(IfcPresentationLayerWithStyle));
Name : IfcLabel;
Description : OPTIONAL IfcText;
AssignedItems : SET [1:?] OF IfcLayeredItem;
Identifier : OPTIONAL IfcIdentifier;
END_ENTITY;
ENTITY IfcPresentationLayerWithStyle
SUBTYPE OF (IfcPresentationLayerAssignment);
LayerOn : LOGICAL;
LayerFrozen : LOGICAL;
LayerBlocked : LOGICAL;
LayerStyles : SET [0:?] OF IfcPresentationStyleSelect;
END_ENTITY;
ENTITY IfcPresentationStyle
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCurveStyle
,IfcFillAreaStyle
,IfcSurfaceStyle
,IfcSymbolStyle
,IfcTextStyle));
Name : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcPresentationStyleAssignment;
Styles : SET [1:?] OF IfcPresentationStyleSelect;
END_ENTITY;
ENTITY IfcProcedure
SUBTYPE OF (IfcProcess);
ProcedureID : IfcIdentifier;
ProcedureType : IfcProcedureTypeEnum;
UserDefinedProcedureType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.Decomposes | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR2 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.IsDecomposedBy | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR3 : EXISTS(SELF\IfcRoot.Name);
WR4 : (ProcedureType <> IfcProcedureTypeEnum.USERDEFINED) OR
((ProcedureType = IfcProcedureTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcProcedure.UserDefinedProcedureType));
END_ENTITY;
ENTITY IfcProcess
ABSTRACT SUPERTYPE OF (ONEOF
(IfcProcedure
,IfcTask))
SUBTYPE OF (IfcObject);
INVERSE
OperatesOn : SET [0:?] OF IfcRelAssignsToProcess FOR RelatingProcess;
IsSuccessorFrom : SET [0:?] OF IfcRelSequence FOR RelatedProcess;
IsPredecessorTo : SET [0:?] OF IfcRelSequence FOR RelatingProcess;
END_ENTITY;
ENTITY IfcProduct
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAnnotation
,IfcElement
,IfcGrid
,IfcPort
,IfcProxy
,IfcSpatialStructureElement
,IfcStructuralActivity
,IfcStructuralItem))
SUBTYPE OF (IfcObject);
ObjectPlacement : OPTIONAL IfcObjectPlacement;
Representation : OPTIONAL IfcProductRepresentation;
INVERSE
ReferencedBy : SET [0:?] OF IfcRelAssignsToProduct FOR RelatingProduct;
WHERE
WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
OR (EXISTS(Representation) AND
(NOT('IFC2X3.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
OR (NOT(EXISTS(Representation)));
END_ENTITY;
ENTITY IfcProductDefinitionShape
SUBTYPE OF (IfcProductRepresentation);
INVERSE
ShapeOfProduct : SET [1:1] OF IfcProduct FOR Representation;
HasShapeAspects : SET [0:?] OF IfcShapeAspect FOR PartOfProductDefinitionShape;
WHERE
WR11 : SIZEOF(QUERY(temp <* Representations |
(NOT('IFC2X3.IFCSHAPEMODEL' IN TYPEOF(temp)))
)) = 0;
END_ENTITY;
ENTITY IfcProductRepresentation
SUPERTYPE OF (ONEOF
(IfcMaterialDefinitionRepresentation
,IfcProductDefinitionShape));
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
Representations : LIST [1:?] OF IfcRepresentation;
END_ENTITY;
ENTITY IfcProductsOfCombustionProperties
SUBTYPE OF (IfcMaterialProperties);
SpecificHeatCapacity : OPTIONAL IfcSpecificHeatCapacityMeasure;
N20Content : OPTIONAL IfcPositiveRatioMeasure;
COContent : OPTIONAL IfcPositiveRatioMeasure;
CO2Content : OPTIONAL IfcPositiveRatioMeasure;
UNIQUE
UR11 : Material;
END_ENTITY;
ENTITY IfcProfileDef
ABSTRACT SUPERTYPE OF (ONEOF
(IfcArbitraryClosedProfileDef
,IfcArbitraryOpenProfileDef
,IfcCompositeProfileDef
,IfcDerivedProfileDef
,IfcParameterizedProfileDef));
ProfileType : IfcProfileTypeEnum;
ProfileName : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcProfileProperties
ABSTRACT SUPERTYPE OF (ONEOF
(IfcGeneralProfileProperties
,IfcRibPlateProfileProperties));
ProfileName : OPTIONAL IfcLabel;
ProfileDefinition : OPTIONAL IfcProfileDef;
END_ENTITY;
ENTITY IfcProject
SUBTYPE OF (IfcObject);
LongName : OPTIONAL IfcLabel;
Phase : OPTIONAL IfcLabel;
RepresentationContexts : SET [1:?] OF IfcRepresentationContext;
UnitsInContext : IfcUnitAssignment;
WHERE
WR31 : EXISTS(SELF\IfcRoot.Name);
WR32 : SIZEOF(QUERY(Temp <* RepresentationContexts |
'IFC2X3.IFCGEOMETRICREPRESENTATIONSUBCONTEXT' IN TYPEOF(Temp)
)) = 0;
WR33 : SIZEOF(SELF\IfcObjectDefinition.Decomposes) = 0;
END_ENTITY;
ENTITY IfcProjectOrder
SUBTYPE OF (IfcControl);
ID : IfcIdentifier;
PredefinedType : IfcProjectOrderTypeEnum;
Status : OPTIONAL IfcLabel;
UNIQUE
UR2 : ID;
END_ENTITY;
ENTITY IfcProjectOrderRecord
SUBTYPE OF (IfcControl);
Records : LIST [1:?] OF UNIQUE IfcRelAssignsToProjectOrder;
PredefinedType : IfcProjectOrderRecordTypeEnum;
END_ENTITY;
ENTITY IfcProjectionCurve
SUBTYPE OF (IfcAnnotationCurveOccurrence);
END_ENTITY;
ENTITY IfcProjectionElement
SUBTYPE OF (IfcFeatureElementAddition);
END_ENTITY;
ENTITY IfcProperty
ABSTRACT SUPERTYPE OF (ONEOF
(IfcComplexProperty
,IfcSimpleProperty));
Name : IfcIdentifier;
Description : OPTIONAL IfcText;
INVERSE
PropertyForDependance : SET [0:?] OF IfcPropertyDependencyRelationship FOR DependingProperty;
PropertyDependsOn : SET [0:?] OF IfcPropertyDependencyRelationship FOR DependantProperty;
PartOfComplex : SET [0:1] OF IfcComplexProperty FOR HasProperties;
END_ENTITY;
ENTITY IfcPropertyBoundedValue
SUBTYPE OF (IfcSimpleProperty);
UpperBoundValue : OPTIONAL IfcValue;
LowerBoundValue : OPTIONAL IfcValue;
Unit : OPTIONAL IfcUnit;
WHERE
WR21 : NOT(EXISTS(UpperBoundValue)) OR NOT(EXISTS(LowerBoundValue)) OR
(TYPEOF(UpperBoundValue) = TYPEOF(LowerBoundValue));
WR22 : EXISTS(UpperBoundValue) OR EXISTS(LowerBoundValue);
END_ENTITY;
ENTITY IfcPropertyConstraintRelationship;
RelatingConstraint : IfcConstraint;
RelatedProperties : SET [1:?] OF IfcProperty;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcPropertyDefinition
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPropertySetDefinition))
SUBTYPE OF (IfcRoot);
INVERSE
HasAssociations : SET [0:?] OF IfcRelAssociates FOR RelatedObjects;
END_ENTITY;
ENTITY IfcPropertyDependencyRelationship;
DependingProperty : IfcProperty;
DependantProperty : IfcProperty;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
Expression : OPTIONAL IfcText;
WHERE
WR1 : DependingProperty :<>: DependantProperty;
END_ENTITY;
ENTITY IfcPropertyEnumeratedValue
SUBTYPE OF (IfcSimpleProperty);
EnumerationValues : LIST [1:?] OF IfcValue;
EnumerationReference : OPTIONAL IfcPropertyEnumeration;
WHERE
WR1 : NOT(EXISTS(EnumerationReference)) OR
(SIZEOF(QUERY(temp <* EnumerationValues |
temp IN EnumerationReference.EnumerationValues))
= SIZEOF(EnumerationValues));
END_ENTITY;
ENTITY IfcPropertyEnumeration;
Name : IfcLabel;
EnumerationValues : LIST [1:?] OF UNIQUE IfcValue;
Unit : OPTIONAL IfcUnit;
UNIQUE
UR1 : Name;
WHERE
WR01 : SIZEOF(QUERY(temp <* SELF.EnumerationValues |
NOT(TYPEOF(SELF.EnumerationValues[1]) = TYPEOF(temp))
)) = 0;
END_ENTITY;
ENTITY IfcPropertyListValue
SUBTYPE OF (IfcSimpleProperty);
ListValues : LIST [1:?] OF IfcValue;
Unit : OPTIONAL IfcUnit;
WHERE
WR31 : SIZEOF(QUERY(temp <* SELF.ListValues |
NOT(TYPEOF(SELF.ListValues[1]) = TYPEOF(temp))
)) = 0;
END_ENTITY;
ENTITY IfcPropertyReferenceValue
SUBTYPE OF (IfcSimpleProperty);
UsageName : OPTIONAL IfcLabel;
PropertyReference : IfcObjectReferenceSelect;
END_ENTITY;
ENTITY IfcPropertySet
SUBTYPE OF (IfcPropertySetDefinition);
HasProperties : SET [1:?] OF IfcProperty;
WHERE
WR31 : EXISTS(SELF\IfcRoot.Name);
WR32 : IfcUniquePropertyName(HasProperties);
END_ENTITY;
ENTITY IfcPropertySetDefinition
ABSTRACT SUPERTYPE OF (ONEOF
(IfcDoorLiningProperties
,IfcDoorPanelProperties
,IfcElementQuantity
,IfcEnergyProperties
,IfcFluidFlowProperties
,IfcPermeableCoveringProperties
,IfcPropertySet
,IfcReinforcementDefinitionProperties
,IfcServiceLifeFactor
,IfcSoundProperties
,IfcSoundValue
,IfcSpaceThermalLoadProperties
,IfcWindowLiningProperties
,IfcWindowPanelProperties))
SUBTYPE OF (IfcPropertyDefinition);
INVERSE
PropertyDefinitionOf : SET [0:1] OF IfcRelDefinesByProperties FOR RelatingPropertyDefinition;
DefinesType : SET [0:1] OF IfcTypeObject FOR HasPropertySets;
END_ENTITY;
ENTITY IfcPropertySingleValue
SUBTYPE OF (IfcSimpleProperty);
NominalValue : OPTIONAL IfcValue;
Unit : OPTIONAL IfcUnit;
END_ENTITY;
ENTITY IfcPropertyTableValue
SUBTYPE OF (IfcSimpleProperty);
DefiningValues : LIST [1:?] OF UNIQUE IfcValue;
DefinedValues : LIST [1:?] OF IfcValue;
Expression : OPTIONAL IfcText;
DefiningUnit : OPTIONAL IfcUnit;
DefinedUnit : OPTIONAL IfcUnit;
WHERE
WR1 : SIZEOF(DefiningValues) = SIZEOF(DefinedValues);
WR2 : SIZEOF(QUERY(temp <* SELF.DefiningValues | TYPEOF(temp) <> TYPEOF(SELF.DefiningValues[1])))=0;
WR3 : SIZEOF(QUERY(temp <* SELF.DefinedValues | TYPEOF(temp) <> TYPEOF(SELF.DefinedValues[1])))=0;
END_ENTITY;
ENTITY IfcProtectiveDeviceType
SUBTYPE OF (IfcFlowControllerType);
PredefinedType : IfcProtectiveDeviceTypeEnum;
END_ENTITY;
ENTITY IfcProxy
SUBTYPE OF (IfcProduct);
ProxyType : IfcObjectTypeEnum;
Tag : OPTIONAL IfcLabel;
WHERE
WR1 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcPumpType
SUBTYPE OF (IfcFlowMovingDeviceType);
PredefinedType : IfcPumpTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcPumpTypeEnum.USERDEFINED) OR
((PredefinedType = IfcPumpTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcQuantityArea
SUBTYPE OF (IfcPhysicalSimpleQuantity);
AreaValue : IfcAreaMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.AREAUNIT);
WR22 : AreaValue >= 0.;
END_ENTITY;
ENTITY IfcQuantityCount
SUBTYPE OF (IfcPhysicalSimpleQuantity);
CountValue : IfcCountMeasure;
WHERE
WR21 : CountValue >= 0.;
END_ENTITY;
ENTITY IfcQuantityLength
SUBTYPE OF (IfcPhysicalSimpleQuantity);
LengthValue : IfcLengthMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.LENGTHUNIT);
WR22 : LengthValue >= 0.;
END_ENTITY;
ENTITY IfcQuantityTime
SUBTYPE OF (IfcPhysicalSimpleQuantity);
TimeValue : IfcTimeMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.TIMEUNIT);
WR22 : TimeValue >= 0.;
END_ENTITY;
ENTITY IfcQuantityVolume
SUBTYPE OF (IfcPhysicalSimpleQuantity);
VolumeValue : IfcVolumeMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.VOLUMEUNIT);
WR22 : VolumeValue >= 0.;
END_ENTITY;
ENTITY IfcQuantityWeight
SUBTYPE OF (IfcPhysicalSimpleQuantity);
WeightValue : IfcMassMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.MASSUNIT);
WR22 : WeightValue >= 0.;
END_ENTITY;
ENTITY IfcRadiusDimension
SUBTYPE OF (IfcDimensionCurveDirectedCallout);
END_ENTITY;
ENTITY IfcRailing
SUBTYPE OF (IfcBuildingElement);
PredefinedType : OPTIONAL IfcRailingTypeEnum;
END_ENTITY;
ENTITY IfcRailingType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcRailingTypeEnum;
END_ENTITY;
ENTITY IfcRamp
SUBTYPE OF (IfcBuildingElement);
ShapeType : IfcRampTypeEnum;
WHERE
WR1 : (HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 0) OR
((HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 1) AND (NOT(EXISTS(SELF\IfcProduct.Representation))));
END_ENTITY;
ENTITY IfcRampFlight
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
ENTITY IfcRampFlightType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcRampFlightTypeEnum;
END_ENTITY;
ENTITY IfcRationalBezierCurve
SUBTYPE OF (IfcBezierCurve);
WeightsData : LIST [2:?] OF REAL;
DERIVE
Weights : ARRAY [0:255] OF REAL := IfcListToArray(WeightsData,0,SELF\IfcBSplineCurve.UpperIndexOnControlPoints);
WHERE
WR1 : SIZEOF(WeightsData) = SIZEOF(SELF\IfcBSplineCurve.ControlPointsList);
WR2 : IfcCurveWeightsPositive(SELF);
END_ENTITY;
ENTITY IfcRectangleHollowProfileDef
SUBTYPE OF (IfcRectangleProfileDef);
WallThickness : IfcPositiveLengthMeasure;
InnerFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
OuterFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR31 : (WallThickness < (SELF\IfcRectangleProfileDef.XDim/2.)) AND
(WallThickness < (SELF\IfcRectangleProfileDef.YDim/2.));
WR32 : NOT(EXISTS(OuterFilletRadius)) OR
((OuterFilletRadius <= (SELF\IfcRectangleProfileDef.XDim/2.)) AND
(OuterFilletRadius <= (SELF\IfcRectangleProfileDef.YDim/2.)));
WR33 : NOT(EXISTS(InnerFilletRadius)) OR
((InnerFilletRadius <= (SELF\IfcRectangleProfileDef.XDim/2. - WallThickness)) AND
(InnerFilletRadius <= (SELF\IfcRectangleProfileDef.YDim/2. - WallThickness)));
END_ENTITY;
ENTITY IfcRectangleProfileDef
SUPERTYPE OF (ONEOF
(IfcRectangleHollowProfileDef
,IfcRoundedRectangleProfileDef))
SUBTYPE OF (IfcParameterizedProfileDef);
XDim : IfcPositiveLengthMeasure;
YDim : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcRectangularPyramid
SUBTYPE OF (IfcCsgPrimitive3D);
XLength : IfcPositiveLengthMeasure;
YLength : IfcPositiveLengthMeasure;
Height : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcRectangularTrimmedSurface
SUBTYPE OF (IfcBoundedSurface);
BasisSurface : IfcSurface;
U1 : IfcParameterValue;
V1 : IfcParameterValue;
U2 : IfcParameterValue;
V2 : IfcParameterValue;
Usense : BOOLEAN;
Vsense : BOOLEAN;
DERIVE
Dim : IfcDimensionCount := BasisSurface.Dim;
WHERE
WR1 : U1 <> U2;
WR2 : V1 <> V2;
WR3 : (('IFC2X3.IFCELEMENTARYSURFACE' IN TYPEOF(BasisSurface)) AND
(NOT ('IFC2X3.IFCPLANE' IN TYPEOF(BasisSurface)))) OR
('IFC2X3.IFCSURFACEOFREVOLUTION' IN TYPEOF(BasisSurface)) OR
(Usense = (U2 > U1));
WR4 : Vsense = (V2 > V1);
END_ENTITY;
ENTITY IfcReferencesValueDocument;
ReferencedDocument : IfcDocumentSelect;
ReferencingValues : SET [1:?] OF IfcAppliedValue;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcRegularTimeSeries
SUBTYPE OF (IfcTimeSeries);
TimeStep : IfcTimeMeasure;
Values : LIST [1:?] OF IfcTimeSeriesValue;
END_ENTITY;
ENTITY IfcReinforcementBarProperties;
TotalCrossSectionArea : IfcAreaMeasure;
SteelGrade : IfcLabel;
BarSurface : OPTIONAL IfcReinforcingBarSurfaceEnum;
EffectiveDepth : OPTIONAL IfcLengthMeasure;
NominalBarDiameter : OPTIONAL IfcPositiveLengthMeasure;
BarCount : OPTIONAL IfcCountMeasure;
END_ENTITY;
ENTITY IfcReinforcementDefinitionProperties
SUBTYPE OF (IfcPropertySetDefinition);
DefinitionType : OPTIONAL IfcLabel;
ReinforcementSectionDefinitions : LIST [1:?] OF IfcSectionReinforcementProperties;
END_ENTITY;
ENTITY IfcReinforcingBar
SUBTYPE OF (IfcReinforcingElement);
NominalDiameter : IfcPositiveLengthMeasure;
CrossSectionArea : IfcAreaMeasure;
BarLength : OPTIONAL IfcPositiveLengthMeasure;
BarRole : IfcReinforcingBarRoleEnum;
BarSurface : OPTIONAL IfcReinforcingBarSurfaceEnum;
WHERE
WR1 : (BarRole <> IfcReinforcingBarRoleEnum.USERDEFINED) OR ((BarRole = IfcReinforcingBarRoleEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
END_ENTITY;
ENTITY IfcReinforcingElement
ABSTRACT SUPERTYPE OF (ONEOF
(IfcReinforcingBar
,IfcReinforcingMesh
,IfcTendon
,IfcTendonAnchor))
SUBTYPE OF (IfcBuildingElementComponent);
SteelGrade : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcReinforcingMesh
SUBTYPE OF (IfcReinforcingElement);
MeshLength : OPTIONAL IfcPositiveLengthMeasure;
MeshWidth : OPTIONAL IfcPositiveLengthMeasure;
LongitudinalBarNominalDiameter : IfcPositiveLengthMeasure;
TransverseBarNominalDiameter : IfcPositiveLengthMeasure;
LongitudinalBarCrossSectionArea : IfcAreaMeasure;
TransverseBarCrossSectionArea : IfcAreaMeasure;
LongitudinalBarSpacing : IfcPositiveLengthMeasure;
TransverseBarSpacing : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcRelAggregates
SUBTYPE OF (IfcRelDecomposes);
END_ENTITY;
ENTITY IfcRelAssigns
ABSTRACT SUPERTYPE OF (ONEOF
(IfcRelAssignsToActor
,IfcRelAssignsToControl
,IfcRelAssignsToGroup
,IfcRelAssignsToProcess
,IfcRelAssignsToProduct
,IfcRelAssignsToResource))
SUBTYPE OF (IfcRelationship);
RelatedObjects : SET [1:?] OF IfcObjectDefinition;
RelatedObjectsType : OPTIONAL IfcObjectTypeEnum;
WHERE
WR1 : IfcCorrectObjectAssignment(RelatedObjectsType, RelatedObjects);
END_ENTITY;
ENTITY IfcRelAssignsTasks
SUBTYPE OF (IfcRelAssignsToControl);
TimeForTask : OPTIONAL IfcScheduleTimeControl;
WHERE
WR1 : HIINDEX(SELF\IfcRelAssigns.RelatedObjects) = 1;
WR2 : 'IFC2X3.IFCTASK' IN TYPEOF(SELF\IfcRelAssigns.RelatedObjects[1]);
WR3 : 'IFC2X3.IFCWORKCONTROL' IN TYPEOF(SELF\IfcRelAssignsToControl.RelatingControl);
END_ENTITY;
ENTITY IfcRelAssignsToActor
SUPERTYPE OF (ONEOF
(IfcRelOccupiesSpaces))
SUBTYPE OF (IfcRelAssigns);
RelatingActor : IfcActor;
ActingRole : OPTIONAL IfcActorRole;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingActor :=: Temp)) = 0;
END_ENTITY;
ENTITY IfcRelAssignsToControl
SUPERTYPE OF (ONEOF
(IfcRelAssignsTasks
,IfcRelAssignsToProjectOrder
,IfcRelSchedulesCostItems))
SUBTYPE OF (IfcRelAssigns);
RelatingControl : IfcControl;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingControl :=: Temp)) = 0;
END_ENTITY;
ENTITY IfcRelAssignsToGroup
SUBTYPE OF (IfcRelAssigns);
RelatingGroup : IfcGroup;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingGroup :=: Temp)) = 0;
END_ENTITY;
ENTITY IfcRelAssignsToProcess
SUBTYPE OF (IfcRelAssigns);
RelatingProcess : IfcProcess;
QuantityInProcess : OPTIONAL IfcMeasureWithUnit;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingProcess :=: Temp)) = 0;
END_ENTITY;
ENTITY IfcRelAssignsToProduct
SUBTYPE OF (IfcRelAssigns);
RelatingProduct : IfcProduct;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingProduct :=: Temp)) = 0;
END_ENTITY;
ENTITY IfcRelAssignsToProjectOrder
SUBTYPE OF (IfcRelAssignsToControl);
END_ENTITY;
ENTITY IfcRelAssignsToResource
SUBTYPE OF (IfcRelAssigns);
RelatingResource : IfcResource;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingResource :=: Temp)) = 0;
END_ENTITY;
ENTITY IfcRelAssociates
SUPERTYPE OF (ONEOF
(IfcRelAssociatesAppliedValue
,IfcRelAssociatesApproval
,IfcRelAssociatesClassification
,IfcRelAssociatesConstraint
,IfcRelAssociatesDocument
,IfcRelAssociatesLibrary
,IfcRelAssociatesMaterial
,IfcRelAssociatesProfileProperties))
SUBTYPE OF (IfcRelationship);
RelatedObjects : SET [1:?] OF IfcRoot;
WHERE
WR21 : SIZEOF(QUERY(temp <* RelatedObjects |
NOT(('IFC2X3.IFCOBJECTDEFINITION' IN TYPEOF(temp))
OR ('IFC2X3.IFCPROPERTYDEFINITION' IN TYPEOF(temp)))
)) = 0;
END_ENTITY;
ENTITY IfcRelAssociatesAppliedValue
SUBTYPE OF (IfcRelAssociates);
RelatingAppliedValue : IfcAppliedValue;
END_ENTITY;
ENTITY IfcRelAssociatesApproval
SUBTYPE OF (IfcRelAssociates);
RelatingApproval : IfcApproval;
END_ENTITY;
ENTITY IfcRelAssociatesClassification
SUBTYPE OF (IfcRelAssociates);
RelatingClassification : IfcClassificationNotationSelect;
END_ENTITY;
ENTITY IfcRelAssociatesConstraint
SUBTYPE OF (IfcRelAssociates);
Intent : IfcLabel;
RelatingConstraint : IfcConstraint;
END_ENTITY;
ENTITY IfcRelAssociatesDocument
SUBTYPE OF (IfcRelAssociates);
RelatingDocument : IfcDocumentSelect;
END_ENTITY;
ENTITY IfcRelAssociatesLibrary
SUBTYPE OF (IfcRelAssociates);
RelatingLibrary : IfcLibrarySelect;
END_ENTITY;
ENTITY IfcRelAssociatesMaterial
SUBTYPE OF (IfcRelAssociates);
RelatingMaterial : IfcMaterialSelect;
WHERE
WR21 : SIZEOF(QUERY(temp <* SELF\IfcRelAssociates.RelatedObjects |
('IFC2X3.IFCFEATUREELEMENTSUBTRACTION' IN TYPEOF(temp))
OR ('IFC2X3.IFCVIRTUALELEMENT' IN TYPEOF(temp))
)) = 0;
WR22 : SIZEOF(QUERY(temp <* SELF\IfcRelAssociates.RelatedObjects |
(NOT('IFC2X3.IFCPRODUCT' IN TYPEOF(temp)) AND NOT('IFC2X3.IFCTYPEPRODUCT' IN TYPEOF(temp)))
)) = 0;
END_ENTITY;
ENTITY IfcRelAssociatesProfileProperties
SUBTYPE OF (IfcRelAssociates);
RelatingProfileProperties : IfcProfileProperties;
ProfileSectionLocation : OPTIONAL IfcShapeAspect;
ProfileOrientation : OPTIONAL IfcOrientationSelect;
END_ENTITY;
ENTITY IfcRelConnects
ABSTRACT SUPERTYPE OF (ONEOF
(IfcRelConnectsElements
,IfcRelConnectsPortToElement
,IfcRelConnectsPorts
,IfcRelConnectsStructuralActivity
,IfcRelConnectsStructuralElement
,IfcRelConnectsStructuralMember
,IfcRelContainedInSpatialStructure
,IfcRelCoversBldgElements
,IfcRelCoversSpaces
,IfcRelFillsElement
,IfcRelFlowControlElements
,IfcRelInteractionRequirements
,IfcRelProjectsElement
,IfcRelReferencedInSpatialStructure
,IfcRelSequence
,IfcRelServicesBuildings
,IfcRelSpaceBoundary
,IfcRelVoidsElement))
SUBTYPE OF (IfcRelationship);
END_ENTITY;
ENTITY IfcRelConnectsElements
SUPERTYPE OF (ONEOF
(IfcRelConnectsPathElements
,IfcRelConnectsWithRealizingElements))
SUBTYPE OF (IfcRelConnects);
ConnectionGeometry : OPTIONAL IfcConnectionGeometry;
RelatingElement : IfcElement;
RelatedElement : IfcElement;
WHERE
WR31 : RelatingElement :<>: RelatedElement;
END_ENTITY;
ENTITY IfcRelConnectsPathElements
SUBTYPE OF (IfcRelConnectsElements);
RelatingPriorities : LIST [0:?] OF INTEGER;
RelatedPriorities : LIST [0:?] OF INTEGER;
RelatedConnectionType : IfcConnectionTypeEnum;
RelatingConnectionType : IfcConnectionTypeEnum;
DERIVE
RelatedLayerCount : INTEGER := IfcNoOfLayers(SELF\IfcRelConnectsElements.RelatedElement);
RelatingLayerCount : INTEGER := IfcNoOfLayers(SELF\IfcRelConnectsElements.RelatingElement);
END_ENTITY;
ENTITY IfcRelConnectsPortToElement
SUBTYPE OF (IfcRelConnects);
RelatingPort : IfcPort;
RelatedElement : IfcElement;
END_ENTITY;
ENTITY IfcRelConnectsPorts
SUBTYPE OF (IfcRelConnects);
RelatingPort : IfcPort;
RelatedPort : IfcPort;
RealizingElement : OPTIONAL IfcElement;
END_ENTITY;
ENTITY IfcRelConnectsStructuralActivity
SUBTYPE OF (IfcRelConnects);
RelatingElement : IfcStructuralActivityAssignmentSelect;
RelatedStructuralActivity : IfcStructuralActivity;
END_ENTITY;
ENTITY IfcRelConnectsStructuralElement
SUBTYPE OF (IfcRelConnects);
RelatingElement : IfcElement;
RelatedStructuralMember : IfcStructuralMember;
END_ENTITY;
ENTITY IfcRelConnectsStructuralMember
SUPERTYPE OF (ONEOF
(IfcRelConnectsWithEccentricity))
SUBTYPE OF (IfcRelConnects);
RelatingStructuralMember : IfcStructuralMember;
RelatedStructuralConnection : IfcStructuralConnection;
AppliedCondition : OPTIONAL IfcBoundaryCondition;
AdditionalConditions : OPTIONAL IfcStructuralConnectionCondition;
SupportedLength : OPTIONAL IfcLengthMeasure;
ConditionCoordinateSystem : OPTIONAL IfcAxis2Placement3D;
END_ENTITY;
ENTITY IfcRelConnectsWithEccentricity
SUBTYPE OF (IfcRelConnectsStructuralMember);
ConnectionConstraint : IfcConnectionGeometry;
END_ENTITY;
ENTITY IfcRelConnectsWithRealizingElements
SUBTYPE OF (IfcRelConnectsElements);
RealizingElements : SET [1:?] OF IfcElement;
ConnectionType : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcRelContainedInSpatialStructure
SUBTYPE OF (IfcRelConnects);
RelatedElements : SET [1:?] OF IfcProduct;
RelatingStructure : IfcSpatialStructureElement;
WHERE
WR31 : SIZEOF(QUERY(temp <* RelatedElements | 'IFC2X3.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF(temp))) = 0;
END_ENTITY;
ENTITY IfcRelCoversBldgElements
SUBTYPE OF (IfcRelConnects);
RelatingBuildingElement : IfcElement;
RelatedCoverings : SET [1:?] OF IfcCovering;
END_ENTITY;
ENTITY IfcRelCoversSpaces
SUBTYPE OF (IfcRelConnects);
RelatedSpace : IfcSpace;
RelatedCoverings : SET [1:?] OF IfcCovering;
END_ENTITY;
ENTITY IfcRelDecomposes
ABSTRACT SUPERTYPE OF (ONEOF
(IfcRelAggregates
,IfcRelNests))
SUBTYPE OF (IfcRelationship);
RelatingObject : IfcObjectDefinition;
RelatedObjects : SET [1:?] OF IfcObjectDefinition;
WHERE
WR31 : SIZEOF(QUERY(Temp <* RelatedObjects | RelatingObject :=: Temp)) = 0;
WR32 : SIZEOF(QUERY(Temp <* RelatedObjects | 'IFC2X3.IFCTYPEOBJECT' IN TYPEOF(temp))) = 0;
WR33 : NOT('IFC2X3.IFCTYPEOBJECT' IN TYPEOF(RelatingObject));
END_ENTITY;
ENTITY IfcRelDefines
ABSTRACT SUPERTYPE OF (ONEOF
(IfcRelDefinesByProperties
,IfcRelDefinesByType))
SUBTYPE OF (IfcRelationship);
RelatedObjects : SET [1:?] OF IfcObject;
END_ENTITY;
ENTITY IfcRelDefinesByProperties
SUPERTYPE OF (ONEOF
(IfcRelOverridesProperties))
SUBTYPE OF (IfcRelDefines);
RelatingPropertyDefinition : IfcPropertySetDefinition;
END_ENTITY;
ENTITY IfcRelDefinesByType
SUBTYPE OF (IfcRelDefines);
RelatingType : IfcTypeObject;
END_ENTITY;
ENTITY IfcRelFillsElement
SUBTYPE OF (IfcRelConnects);
RelatingOpeningElement : IfcOpeningElement;
RelatedBuildingElement : IfcElement;
END_ENTITY;
ENTITY IfcRelFlowControlElements
SUBTYPE OF (IfcRelConnects);
RelatedControlElements : SET [1:?] OF IfcDistributionControlElement;
RelatingFlowElement : IfcDistributionFlowElement;
END_ENTITY;
ENTITY IfcRelInteractionRequirements
SUBTYPE OF (IfcRelConnects);
DailyInteraction : OPTIONAL IfcCountMeasure;
ImportanceRating : OPTIONAL IfcNormalisedRatioMeasure;
LocationOfInteraction : OPTIONAL IfcSpatialStructureElement;
RelatedSpaceProgram : IfcSpaceProgram;
RelatingSpaceProgram : IfcSpaceProgram;
END_ENTITY;
ENTITY IfcRelNests
SUBTYPE OF (IfcRelDecomposes);
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelDecomposes.RelatedObjects |
NOT(TYPEOF(SELF\IfcRelDecomposes.RelatingObject) = TYPEOF(Temp)))) = 0;
END_ENTITY;
ENTITY IfcRelOccupiesSpaces
SUBTYPE OF (IfcRelAssignsToActor);
END_ENTITY;
ENTITY IfcRelOverridesProperties
SUBTYPE OF (IfcRelDefinesByProperties);
OverridingProperties : SET [1:?] OF IfcProperty;
WHERE
WR1 : SIZEOF(SELF\IfcRelDefines.RelatedObjects) = 1;
END_ENTITY;
ENTITY IfcRelProjectsElement
SUBTYPE OF (IfcRelConnects);
RelatingElement : IfcElement;
RelatedFeatureElement : IfcFeatureElementAddition;
END_ENTITY;
ENTITY IfcRelReferencedInSpatialStructure
SUBTYPE OF (IfcRelConnects);
RelatedElements : SET [1:?] OF IfcProduct;
RelatingStructure : IfcSpatialStructureElement;
WHERE
WR31 : SIZEOF(QUERY(temp <* RelatedElements | 'IFC2X3.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF(temp))) = 0;
END_ENTITY;
ENTITY IfcRelSchedulesCostItems
SUBTYPE OF (IfcRelAssignsToControl);
WHERE
WR11 : SIZEOF(QUERY(temp <* SELF\IfcRelAssigns.RelatedObjects |
NOT('IFC2X3.IFCCOSTITEM' IN TYPEOF(temp))
)) = 0;
WR12 : 'IFC2X3.IFCCOSTSCHEDULE' IN TYPEOF (SELF\IfcRelAssignsToControl.RelatingControl);
END_ENTITY;
ENTITY IfcRelSequence
SUBTYPE OF (IfcRelConnects);
RelatingProcess : IfcProcess;
RelatedProcess : IfcProcess;
TimeLag : IfcTimeMeasure;
SequenceType : IfcSequenceEnum;
WHERE
WR1 : RelatingProcess :<>: RelatedProcess;
END_ENTITY;
ENTITY IfcRelServicesBuildings
SUBTYPE OF (IfcRelConnects);
RelatingSystem : IfcSystem;
RelatedBuildings : SET [1:?] OF IfcSpatialStructureElement;
END_ENTITY;
ENTITY IfcRelSpaceBoundary
SUBTYPE OF (IfcRelConnects);
RelatingSpace : IfcSpace;
RelatedBuildingElement : OPTIONAL IfcElement;
ConnectionGeometry : OPTIONAL IfcConnectionGeometry;
PhysicalOrVirtualBoundary : IfcPhysicalOrVirtualEnum;
InternalOrExternalBoundary : IfcInternalOrExternalEnum;
WHERE
WR1 : ((PhysicalOrVirtualBoundary = IfcPhysicalOrVirtualEnum.Physical) AND
(EXISTS(RelatedBuildingElement) AND NOT('IFC2X3.IFCVIRTUALELEMENT' IN TYPEOF(RelatedBuildingElement))))
OR
((PhysicalOrVirtualBoundary = IfcPhysicalOrVirtualEnum.Virtual) AND
(NOT(EXISTS(RelatedBuildingElement)) OR ('IFC2X3.IFCVIRTUALELEMENT' IN TYPEOF(RelatedBuildingElement))))
OR
(PhysicalOrVirtualBoundary = IfcPhysicalOrVirtualEnum.NotDefined);
END_ENTITY;
ENTITY IfcRelVoidsElement
SUBTYPE OF (IfcRelConnects);
RelatingBuildingElement : IfcElement;
RelatedOpeningElement : IfcFeatureElementSubtraction;
END_ENTITY;
ENTITY IfcRelationship
ABSTRACT SUPERTYPE OF (ONEOF
(IfcRelAssigns
,IfcRelAssociates
,IfcRelConnects
,IfcRelDecomposes
,IfcRelDefines))
SUBTYPE OF (IfcRoot);
END_ENTITY;
ENTITY IfcRelaxation;
RelaxationValue : IfcNormalisedRatioMeasure;
InitialStress : IfcNormalisedRatioMeasure;
END_ENTITY;
ENTITY IfcRepresentation
SUPERTYPE OF (ONEOF
(IfcShapeModel
,IfcStyleModel));
ContextOfItems : IfcRepresentationContext;
RepresentationIdentifier : OPTIONAL IfcLabel;
RepresentationType : OPTIONAL IfcLabel;
Items : SET [1:?] OF IfcRepresentationItem;
INVERSE
RepresentationMap : SET [0:1] OF IfcRepresentationMap FOR MappedRepresentation;
LayerAssignments : SET [0:?] OF IfcPresentationLayerAssignment FOR Assigneditems;
OfProductRepresentation : SET [0:1] OF IfcProductRepresentation FOR Representations;
END_ENTITY;
ENTITY IfcRepresentationContext
SUPERTYPE OF (ONEOF
(IfcGeometricRepresentationContext));
ContextIdentifier : OPTIONAL IfcLabel;
ContextType : OPTIONAL IfcLabel;
INVERSE
RepresentationsInContext : SET [0:?] OF IfcRepresentation FOR ContextOfItems;
END_ENTITY;
ENTITY IfcRepresentationItem
ABSTRACT SUPERTYPE OF (ONEOF
(IfcGeometricRepresentationItem
,IfcMappedItem
,IfcStyledItem
,IfcTopologicalRepresentationItem));
INVERSE
LayerAssignments : SET [0:?] OF IfcPresentationLayerAssignment FOR AssignedItems;
StyledByItem : SET [0:1] OF IfcStyledItem FOR Item;
END_ENTITY;
ENTITY IfcRepresentationMap;
MappingOrigin : IfcAxis2Placement;
MappedRepresentation : IfcRepresentation;
INVERSE
MapUsage : SET [0:?] OF IfcMappedItem FOR MappingSource;
END_ENTITY;
ENTITY IfcResource
ABSTRACT SUPERTYPE OF (ONEOF
(IfcConstructionResource))
SUBTYPE OF (IfcObject);
INVERSE
ResourceOf : SET [0:?] OF IfcRelAssignsToResource FOR RelatingResource;
END_ENTITY;
ENTITY IfcRevolvedAreaSolid
SUBTYPE OF (IfcSweptAreaSolid);
Axis : IfcAxis1Placement;
Angle : IfcPlaneAngleMeasure;
DERIVE
AxisLine : IfcLine := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcCurve() || IfcLine(Axis.Location,
IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(Axis.Z,1.0));
WHERE
WR31 : Axis.Location.Coordinates[3] = 0.0;
WR32 : Axis.Z.DirectionRatios[3] = 0.0;
END_ENTITY;
ENTITY IfcRibPlateProfileProperties
SUBTYPE OF (IfcProfileProperties);
Thickness : OPTIONAL IfcPositiveLengthMeasure;
RibHeight : OPTIONAL IfcPositiveLengthMeasure;
RibWidth : OPTIONAL IfcPositiveLengthMeasure;
RibSpacing : OPTIONAL IfcPositiveLengthMeasure;
Direction : IfcRibPlateDirectionEnum;
END_ENTITY;
ENTITY IfcRightCircularCone
SUBTYPE OF (IfcCsgPrimitive3D);
Height : IfcPositiveLengthMeasure;
BottomRadius : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcRightCircularCylinder
SUBTYPE OF (IfcCsgPrimitive3D);
Height : IfcPositiveLengthMeasure;
Radius : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcRoof
SUBTYPE OF (IfcBuildingElement);
ShapeType : IfcRoofTypeEnum;
WHERE
WR1 : (HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 0) OR
((HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 1) AND (NOT(EXISTS(SELF\IfcProduct.Representation))));
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE OF (ONEOF
(IfcObjectDefinition
,IfcPropertyDefinition
,IfcRelationship));
GlobalId : IfcGloballyUniqueId;
OwnerHistory : IfcOwnerHistory;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcRoundedEdgeFeature
SUBTYPE OF (IfcEdgeFeature);
Radius : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcRoundedRectangleProfileDef
SUBTYPE OF (IfcRectangleProfileDef);
RoundingRadius : IfcPositiveLengthMeasure;
WHERE
WR31 : ((RoundingRadius <= (SELF\IfcRectangleProfileDef.XDim/2.)) AND
(RoundingRadius <= (SELF\IfcRectangleProfileDef.YDim/2.)));
END_ENTITY;
ENTITY IfcSIUnit
SUBTYPE OF (IfcNamedUnit);
Prefix : OPTIONAL IfcSIPrefix;
Name : IfcSIUnitName;
DERIVE
SELF\IfcNamedUnit.Dimensions : IfcDimensionalExponents := IfcDimensionsForSiUnit (SELF.Name);
END_ENTITY;
ENTITY IfcSanitaryTerminalType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcSanitaryTerminalTypeEnum;
END_ENTITY;
ENTITY IfcScheduleTimeControl
SUBTYPE OF (IfcControl);
ActualStart : OPTIONAL IfcDateTimeSelect;
EarlyStart : OPTIONAL IfcDateTimeSelect;
LateStart : OPTIONAL IfcDateTimeSelect;
ScheduleStart : OPTIONAL IfcDateTimeSelect;
ActualFinish : OPTIONAL IfcDateTimeSelect;
EarlyFinish : OPTIONAL IfcDateTimeSelect;
LateFinish : OPTIONAL IfcDateTimeSelect;
ScheduleFinish : OPTIONAL IfcDateTimeSelect;
ScheduleDuration : OPTIONAL IfcTimeMeasure;
ActualDuration : OPTIONAL IfcTimeMeasure;
RemainingTime : OPTIONAL IfcTimeMeasure;
FreeFloat : OPTIONAL IfcTimeMeasure;
TotalFloat : OPTIONAL IfcTimeMeasure;
IsCritical : OPTIONAL BOOLEAN;
StatusTime : OPTIONAL IfcDateTimeSelect;
StartFloat : OPTIONAL IfcTimeMeasure;
FinishFloat : OPTIONAL IfcTimeMeasure;
Completion : OPTIONAL IfcPositiveRatioMeasure;
INVERSE
ScheduleTimeControlAssigned : IfcRelAssignsTasks FOR TimeForTask;
END_ENTITY;
ENTITY IfcSectionProperties;
SectionType : IfcSectionTypeEnum;
StartProfile : IfcProfileDef;
EndProfile : OPTIONAL IfcProfileDef;
END_ENTITY;
ENTITY IfcSectionReinforcementProperties;
LongitudinalStartPosition : IfcLengthMeasure;
LongitudinalEndPosition : IfcLengthMeasure;
TransversePosition : OPTIONAL IfcLengthMeasure;
ReinforcementRole : IfcReinforcingBarRoleEnum;
SectionDefinition : IfcSectionProperties;
CrossSectionReinforcementDefinitions : SET [1:?] OF IfcReinforcementBarProperties;
END_ENTITY;
ENTITY IfcSectionedSpine
SUBTYPE OF (IfcGeometricRepresentationItem);
SpineCurve : IfcCompositeCurve;
CrossSections : LIST [2:?] OF IfcProfileDef;
CrossSectionPositions : LIST [2:?] OF IfcAxis2Placement3D;
DERIVE
Dim : IfcDimensionCount := 3;
WHERE
WR1 : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
WR2 : SIZEOF(QUERY(temp <* CrossSections | CrossSections[1].ProfileType <> temp.ProfileType)) = 0;
WR3 : SpineCurve.Dim = 3;
END_ENTITY;
ENTITY IfcSensorType
SUBTYPE OF (IfcDistributionControlElementType);
PredefinedType : IfcSensorTypeEnum;
END_ENTITY;
ENTITY IfcServiceLife
SUBTYPE OF (IfcControl);
ServiceLifeType : IfcServiceLifeTypeEnum;
ServiceLifeDuration : IfcTimeMeasure;
END_ENTITY;
ENTITY IfcServiceLifeFactor
SUBTYPE OF (IfcPropertySetDefinition);
PredefinedType : IfcServiceLifeFactorTypeEnum;
UpperValue : OPTIONAL IfcMeasureValue;
MostUsedValue : IfcMeasureValue;
LowerValue : OPTIONAL IfcMeasureValue;
WHERE
WR31 : NOT(PredefinedType = IfcServiceLifeFactorTypeEnum.USERDEFINED)
OR EXISTS(SELF\IfcObject.ObjectType);
END_ENTITY;
ENTITY IfcShapeAspect;
ShapeRepresentations : LIST [1:?] OF IfcShapeModel;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
ProductDefinitional : LOGICAL;
PartOfProductDefinitionShape : IfcProductDefinitionShape;
END_ENTITY;
ENTITY IfcShapeModel
ABSTRACT SUPERTYPE OF (ONEOF
(IfcShapeRepresentation
,IfcTopologyRepresentation))
SUBTYPE OF (IfcRepresentation);
INVERSE
OfShapeAspect : SET [0:1] OF IfcShapeAspect FOR ShapeRepresentations;
WHERE
WR11 : (SIZEOF(SELF\IfcRepresentation.OfProductRepresentation) = 1) XOR
(SIZEOF(SELF\IfcRepresentation.RepresentationMap) = 1) XOR
(SIZEOF(OfShapeAspect) = 1);
END_ENTITY;
ENTITY IfcShapeRepresentation
SUBTYPE OF (IfcShapeModel);
WHERE
WR21 : 'IFC2X3.IFCGEOMETRICREPRESENTATIONCONTEXT'
IN TYPEOF(SELF\IfcRepresentation.ContextOfItems);
WR22 : SIZEOF(QUERY(temp <* Items |
('IFC2X3.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
AND (NOT(SIZEOF(
['IFC2X3.IFCVERTEXPOINT',
'IFC2X3.IFCEDGECURVE',
'IFC2X3.IFCFACESURFACE'] * TYPEOF(temp)) = 1))
)) = 0;
WR23 : EXISTS(SELF\IfcRepresentation.RepresentationType);
WR24 : IfcShapeRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
END_ENTITY;
ENTITY IfcShellBasedSurfaceModel
SUBTYPE OF (IfcGeometricRepresentationItem);
SbsmBoundary : SET [1:?] OF IfcShell;
DERIVE
Dim : IfcDimensionCount := 3;
END_ENTITY;
ENTITY IfcSimpleProperty
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPropertyBoundedValue
,IfcPropertyEnumeratedValue
,IfcPropertyListValue
,IfcPropertyReferenceValue
,IfcPropertySingleValue
,IfcPropertyTableValue))
SUBTYPE OF (IfcProperty);
END_ENTITY;
ENTITY IfcSite
SUBTYPE OF (IfcSpatialStructureElement);
RefLatitude : OPTIONAL IfcCompoundPlaneAngleMeasure;
RefLongitude : OPTIONAL IfcCompoundPlaneAngleMeasure;
RefElevation : OPTIONAL IfcLengthMeasure;
LandTitleNumber : OPTIONAL IfcLabel;
SiteAddress : OPTIONAL IfcPostalAddress;
END_ENTITY;
ENTITY IfcSlab
SUBTYPE OF (IfcBuildingElement);
PredefinedType : OPTIONAL IfcSlabTypeEnum;
WHERE
WR2 : (PredefinedType <> IfcSlabTypeEnum.USERDEFINED) OR
((PredefinedType = IfcSlabTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
END_ENTITY;
ENTITY IfcSlabType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcSlabTypeEnum;
END_ENTITY;
ENTITY IfcSlippageConnectionCondition
SUBTYPE OF (IfcStructuralConnectionCondition);
SlippageX : OPTIONAL IfcLengthMeasure;
SlippageY : OPTIONAL IfcLengthMeasure;
SlippageZ : OPTIONAL IfcLengthMeasure;
END_ENTITY;
ENTITY IfcSolidModel
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCsgSolid
,IfcManifoldSolidBrep
,IfcSweptAreaSolid
,IfcSweptDiskSolid))
SUBTYPE OF (IfcGeometricRepresentationItem);
DERIVE
Dim : IfcDimensionCount := 3;
END_ENTITY;
ENTITY IfcSoundProperties
SUBTYPE OF (IfcPropertySetDefinition);
IsAttenuating : IfcBoolean;
SoundScale : OPTIONAL IfcSoundScaleEnum;
SoundValues : LIST [1:8] OF IfcSoundValue;
END_ENTITY;
ENTITY IfcSoundValue
SUBTYPE OF (IfcPropertySetDefinition);
SoundLevelTimeSeries : OPTIONAL IfcTimeSeries;
Frequency : IfcFrequencyMeasure;
SoundLevelSingleValue : OPTIONAL IfcDerivedMeasureValue;
END_ENTITY;
ENTITY IfcSpace
SUBTYPE OF (IfcSpatialStructureElement);
InteriorOrExteriorSpace : IfcInternalOrExternalEnum;
ElevationWithFlooring : OPTIONAL IfcLengthMeasure;
INVERSE
HasCoverings : SET [0:?] OF IfcRelCoversSpaces FOR RelatedSpace;
BoundedBy : SET [0:?] OF IfcRelSpaceBoundary FOR RelatingSpace;
END_ENTITY;
ENTITY IfcSpaceHeaterType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcSpaceHeaterTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcSpaceHeaterTypeEnum.USERDEFINED) OR
((PredefinedType = IfcSpaceHeaterTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcSpaceProgram
SUBTYPE OF (IfcControl);
SpaceProgramIdentifier : IfcIdentifier;
MaxRequiredArea : OPTIONAL IfcAreaMeasure;
MinRequiredArea : OPTIONAL IfcAreaMeasure;
RequestedLocation : OPTIONAL IfcSpatialStructureElement;
StandardRequiredArea : IfcAreaMeasure;
INVERSE
HasInteractionReqsFrom : SET [0:?] OF IfcRelInteractionRequirements FOR RelatedSpaceProgram;
HasInteractionReqsTo : SET [0:?] OF IfcRelInteractionRequirements FOR RelatingSpaceProgram;
END_ENTITY;
ENTITY IfcSpaceThermalLoadProperties
SUBTYPE OF (IfcPropertySetDefinition);
ApplicableValueRatio : OPTIONAL IfcPositiveRatioMeasure;
ThermalLoadSource : IfcThermalLoadSourceEnum;
PropertySource : IfcPropertySourceEnum;
SourceDescription : OPTIONAL IfcText;
MaximumValue : IfcPowerMeasure;
MinimumValue : OPTIONAL IfcPowerMeasure;
ThermalLoadTimeSeriesValues : OPTIONAL IfcTimeSeries;
UserDefinedThermalLoadSource : OPTIONAL IfcLabel;
UserDefinedPropertySource : OPTIONAL IfcLabel;
ThermalLoadType : IfcThermalLoadTypeEnum;
END_ENTITY;
ENTITY IfcSpaceType
SUBTYPE OF (IfcSpatialStructureElementType);
PredefinedType : IfcSpaceTypeEnum;
END_ENTITY;
ENTITY IfcSpatialStructureElement
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBuilding
,IfcBuildingStorey
,IfcSite
,IfcSpace))
SUBTYPE OF (IfcProduct);
LongName : OPTIONAL IfcLabel;
CompositionType : IfcElementCompositionEnum;
INVERSE
ReferencesElements : SET [0:?] OF IfcRelReferencedInSpatialStructure FOR RelatingStructure;
ServicedBySystems : SET [0:?] OF IfcRelServicesBuildings FOR RelatedBuildings;
ContainsElements : SET [0:?] OF IfcRelContainedInSpatialStructure FOR RelatingStructure;
WHERE
WR41 : (HIINDEX(SELF\IfcObjectDefinition.Decomposes) = 1)
AND
('IFC2X3.IFCRELAGGREGATES' IN TYPEOF(SELF\IfcObjectDefinition.Decomposes[1]))
AND
(('IFC2X3.IFCPROJECT' IN TYPEOF (SELF\IfcObjectDefinition.Decomposes[1].RelatingObject)) OR
('IFC2X3.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF (SELF\IfcObjectDefinition.Decomposes[1].RelatingObject))
);
END_ENTITY;
ENTITY IfcSpatialStructureElementType
ABSTRACT SUPERTYPE OF (ONEOF
(IfcSpaceType))
SUBTYPE OF (IfcElementType);
END_ENTITY;
ENTITY IfcSphere
SUBTYPE OF (IfcCsgPrimitive3D);
Radius : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcStackTerminalType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcStackTerminalTypeEnum;
END_ENTITY;
ENTITY IfcStair
SUBTYPE OF (IfcBuildingElement);
ShapeType : IfcStairTypeEnum;
WHERE
WR1 : (HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 0) OR
((HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 1) AND (NOT(EXISTS(SELF\IfcProduct.Representation))));
END_ENTITY;
ENTITY IfcStairFlight
SUBTYPE OF (IfcBuildingElement);
NumberOfRiser : OPTIONAL INTEGER;
NumberOfTreads : OPTIONAL INTEGER;
RiserHeight : OPTIONAL IfcPositiveLengthMeasure;
TreadLength : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcStairFlightType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcStairFlightTypeEnum;
END_ENTITY;
ENTITY IfcStructuralAction
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralLinearAction
,IfcStructuralPlanarAction
,IfcStructuralPointAction))
SUBTYPE OF (IfcStructuralActivity);
DestabilizingLoad : BOOLEAN;
CausedBy : OPTIONAL IfcStructuralReaction;
END_ENTITY;
ENTITY IfcStructuralActivity
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralAction
,IfcStructuralReaction))
SUBTYPE OF (IfcProduct);
AppliedLoad : IfcStructuralLoad;
GlobalOrLocal : IfcGlobalOrLocalEnum;
INVERSE
AssignedToStructuralItem : IfcRelConnectsStructuralActivity FOR RelatedStructuralActivity;
END_ENTITY;
ENTITY IfcStructuralAnalysisModel
SUBTYPE OF (IfcSystem);
PredefinedType : IfcAnalysisModelTypeEnum;
OrientationOf2DPlane : OPTIONAL IfcAxis2Placement3D;
LoadedBy : OPTIONAL SET [1:?] OF IfcStructuralLoadGroup;
HasResults : OPTIONAL SET [1:?] OF IfcStructuralResultGroup;
END_ENTITY;
ENTITY IfcStructuralConnection
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralCurveConnection
,IfcStructuralPointConnection
,IfcStructuralSurfaceConnection))
SUBTYPE OF (IfcStructuralItem);
AppliedCondition : OPTIONAL IfcBoundaryCondition;
INVERSE
ConnectsStructuralMembers : SET [1:?] OF IfcRelConnectsStructuralMember FOR RelatedStructuralConnection;
END_ENTITY;
ENTITY IfcStructuralConnectionCondition
ABSTRACT SUPERTYPE OF (ONEOF
(IfcFailureConnectionCondition
,IfcSlippageConnectionCondition));
Name : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcStructuralCurveConnection
SUBTYPE OF (IfcStructuralConnection);
END_ENTITY;
ENTITY IfcStructuralCurveMember
SUPERTYPE OF (ONEOF
(IfcStructuralCurveMemberVarying))
SUBTYPE OF (IfcStructuralMember);
PredefinedType : IfcStructuralCurveTypeEnum;
END_ENTITY;
ENTITY IfcStructuralCurveMemberVarying
SUBTYPE OF (IfcStructuralCurveMember);
END_ENTITY;
ENTITY IfcStructuralItem
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralConnection
,IfcStructuralMember))
SUBTYPE OF (IfcProduct);
INVERSE
AssignedStructuralActivity : SET [0:?] OF IfcRelConnectsStructuralActivity FOR RelatingElement;
END_ENTITY;
ENTITY IfcStructuralLinearAction
SUPERTYPE OF (ONEOF
(IfcStructuralLinearActionVarying))
SUBTYPE OF (IfcStructuralAction);
ProjectedOrTrue : IfcProjectedOrTrueLengthEnum;
WHERE
WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADLINEARFORCE',
'IFC2X3.IFCSTRUCTURALLOADTEMPERATURE']
* TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
END_ENTITY;
ENTITY IfcStructuralLinearActionVarying
SUBTYPE OF (IfcStructuralLinearAction);
VaryingAppliedLoadLocation : IfcShapeAspect;
SubsequentAppliedLoads : LIST [1:?] OF IfcStructuralLoad;
DERIVE
VaryingAppliedLoads : LIST [2:?] OF IfcStructuralLoad := IfcAddToBeginOfList(SELF\IfcStructuralActivity.AppliedLoad, SubsequentAppliedLoads);
END_ENTITY;
ENTITY IfcStructuralLoad
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralLoadStatic));
Name : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcStructuralLoadGroup
SUBTYPE OF (IfcGroup);
PredefinedType : IfcLoadGroupTypeEnum;
ActionType : IfcActionTypeEnum;
ActionSource : IfcActionSourceTypeEnum;
Coefficient : OPTIONAL IfcPositiveRatioMeasure;
Purpose : OPTIONAL IfcLabel;
INVERSE
SourceOfResultGroup : SET [0:1] OF IfcStructuralResultGroup FOR ResultForLoadGroup;
LoadGroupFor : SET [0:?] OF IfcStructuralAnalysisModel FOR LoadedBy;
END_ENTITY;
ENTITY IfcStructuralLoadLinearForce
SUBTYPE OF (IfcStructuralLoadStatic);
LinearForceX : OPTIONAL IfcLinearForceMeasure;
LinearForceY : OPTIONAL IfcLinearForceMeasure;
LinearForceZ : OPTIONAL IfcLinearForceMeasure;
LinearMomentX : OPTIONAL IfcLinearMomentMeasure;
LinearMomentY : OPTIONAL IfcLinearMomentMeasure;
LinearMomentZ : OPTIONAL IfcLinearMomentMeasure;
END_ENTITY;
ENTITY IfcStructuralLoadPlanarForce
SUBTYPE OF (IfcStructuralLoadStatic);
PlanarForceX : OPTIONAL IfcPlanarForceMeasure;
PlanarForceY : OPTIONAL IfcPlanarForceMeasure;
PlanarForceZ : OPTIONAL IfcPlanarForceMeasure;
END_ENTITY;
ENTITY IfcStructuralLoadSingleDisplacement
SUPERTYPE OF (ONEOF
(IfcStructuralLoadSingleDisplacementDistortion))
SUBTYPE OF (IfcStructuralLoadStatic);
DisplacementX : OPTIONAL IfcLengthMeasure;
DisplacementY : OPTIONAL IfcLengthMeasure;
DisplacementZ : OPTIONAL IfcLengthMeasure;
RotationalDisplacementRX : OPTIONAL IfcPlaneAngleMeasure;
RotationalDisplacementRY : OPTIONAL IfcPlaneAngleMeasure;
RotationalDisplacementRZ : OPTIONAL IfcPlaneAngleMeasure;
END_ENTITY;
ENTITY IfcStructuralLoadSingleDisplacementDistortion
SUBTYPE OF (IfcStructuralLoadSingleDisplacement);
Distortion : OPTIONAL IfcCurvatureMeasure;
END_ENTITY;
ENTITY IfcStructuralLoadSingleForce
SUPERTYPE OF (ONEOF
(IfcStructuralLoadSingleForceWarping))
SUBTYPE OF (IfcStructuralLoadStatic);
ForceX : OPTIONAL IfcForceMeasure;
ForceY : OPTIONAL IfcForceMeasure;
ForceZ : OPTIONAL IfcForceMeasure;
MomentX : OPTIONAL IfcTorqueMeasure;
MomentY : OPTIONAL IfcTorqueMeasure;
MomentZ : OPTIONAL IfcTorqueMeasure;
END_ENTITY;
ENTITY IfcStructuralLoadSingleForceWarping
SUBTYPE OF (IfcStructuralLoadSingleForce);
WarpingMoment : OPTIONAL IfcWarpingMomentMeasure;
END_ENTITY;
ENTITY IfcStructuralLoadStatic
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralLoadLinearForce
,IfcStructuralLoadPlanarForce
,IfcStructuralLoadSingleDisplacement
,IfcStructuralLoadSingleForce
,IfcStructuralLoadTemperature))
SUBTYPE OF (IfcStructuralLoad);
END_ENTITY;
ENTITY IfcStructuralLoadTemperature
SUBTYPE OF (IfcStructuralLoadStatic);
DeltaT_Constant : OPTIONAL IfcThermodynamicTemperatureMeasure;
DeltaT_Y : OPTIONAL IfcThermodynamicTemperatureMeasure;
DeltaT_Z : OPTIONAL IfcThermodynamicTemperatureMeasure;
END_ENTITY;
ENTITY IfcStructuralMember
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralCurveMember
,IfcStructuralSurfaceMember))
SUBTYPE OF (IfcStructuralItem);
INVERSE
ReferencesElement : SET [0:?] OF IfcRelConnectsStructuralElement FOR RelatedStructuralMember;
ConnectedBy : SET [0:?] OF IfcRelConnectsStructuralMember FOR RelatingStructuralMember;
END_ENTITY;
ENTITY IfcStructuralPlanarAction
SUPERTYPE OF (ONEOF
(IfcStructuralPlanarActionVarying))
SUBTYPE OF (IfcStructuralAction);
ProjectedOrTrue : IfcProjectedOrTrueLengthEnum;
WHERE
WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADPLANARFORCE',
'IFC2X3.IFCSTRUCTURALLOADTEMPERATURE']
* TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
END_ENTITY;
ENTITY IfcStructuralPlanarActionVarying
SUBTYPE OF (IfcStructuralPlanarAction);
VaryingAppliedLoadLocation : IfcShapeAspect;
SubsequentAppliedLoads : LIST [2:?] OF IfcStructuralLoad;
DERIVE
VaryingAppliedLoads : LIST [3:?] OF IfcStructuralLoad := IfcAddToBeginOfList(SELF\IfcStructuralActivity.AppliedLoad, SubsequentAppliedLoads);
END_ENTITY;
ENTITY IfcStructuralPointAction
SUBTYPE OF (IfcStructuralAction);
WHERE
WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADSINGLEFORCE',
'IFC2X3.IFCSTRUCTURALLOADSINGLEDISPLACEMENT']
* TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
END_ENTITY;
ENTITY IfcStructuralPointConnection
SUBTYPE OF (IfcStructuralConnection);
END_ENTITY;
ENTITY IfcStructuralPointReaction
SUBTYPE OF (IfcStructuralReaction);
WHERE
WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADSINGLEFORCE',
'IFC2X3.IFCSTRUCTURALLOADSINGLEDISPLACEMENT']
* TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
END_ENTITY;
ENTITY IfcStructuralProfileProperties
SUPERTYPE OF (ONEOF
(IfcStructuralSteelProfileProperties))
SUBTYPE OF (IfcGeneralProfileProperties);
TorsionalConstantX : OPTIONAL IfcMomentOfInertiaMeasure;
MomentOfInertiaYZ : OPTIONAL IfcMomentOfInertiaMeasure;
MomentOfInertiaY : OPTIONAL IfcMomentOfInertiaMeasure;
MomentOfInertiaZ : OPTIONAL IfcMomentOfInertiaMeasure;
WarpingConstant : OPTIONAL IfcWarpingConstantMeasure;
ShearCentreZ : OPTIONAL IfcLengthMeasure;
ShearCentreY : OPTIONAL IfcLengthMeasure;
ShearDeformationAreaZ : OPTIONAL IfcAreaMeasure;
ShearDeformationAreaY : OPTIONAL IfcAreaMeasure;
MaximumSectionModulusY : OPTIONAL IfcSectionModulusMeasure;
MinimumSectionModulusY : OPTIONAL IfcSectionModulusMeasure;
MaximumSectionModulusZ : OPTIONAL IfcSectionModulusMeasure;
MinimumSectionModulusZ : OPTIONAL IfcSectionModulusMeasure;
TorsionalSectionModulus : OPTIONAL IfcSectionModulusMeasure;
CentreOfGravityInX : OPTIONAL IfcLengthMeasure;
CentreOfGravityInY : OPTIONAL IfcLengthMeasure;
WHERE
WR21 : NOT(EXISTS(ShearDeformationAreaY)) OR (ShearDeformationAreaY >= 0.);
WR22 : NOT(EXISTS(ShearDeformationAreaZ)) OR (ShearDeformationAreaZ >= 0.);
END_ENTITY;
ENTITY IfcStructuralReaction
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStructuralPointReaction))
SUBTYPE OF (IfcStructuralActivity);
INVERSE
Causes : SET [0:?] OF IfcStructuralAction FOR CausedBy;
END_ENTITY;
ENTITY IfcStructuralResultGroup
SUBTYPE OF (IfcGroup);
TheoryType : IfcAnalysisTheoryTypeEnum;
ResultForLoadGroup : OPTIONAL IfcStructuralLoadGroup;
IsLinear : BOOLEAN;
INVERSE
ResultGroupFor : SET [0:1] OF IfcStructuralAnalysisModel FOR HasResults;
END_ENTITY;
ENTITY IfcStructuralSteelProfileProperties
SUBTYPE OF (IfcStructuralProfileProperties);
ShearAreaZ : OPTIONAL IfcAreaMeasure;
ShearAreaY : OPTIONAL IfcAreaMeasure;
PlasticShapeFactorY : OPTIONAL IfcPositiveRatioMeasure;
PlasticShapeFactorZ : OPTIONAL IfcPositiveRatioMeasure;
WHERE
WR31 : NOT(EXISTS(ShearAreaY)) OR (ShearAreaY >= 0.);
WR32 : NOT(EXISTS(ShearAreaZ)) OR (ShearAreaZ >= 0.);
END_ENTITY;
ENTITY IfcStructuralSurfaceConnection
SUBTYPE OF (IfcStructuralConnection);
END_ENTITY;
ENTITY IfcStructuralSurfaceMember
SUPERTYPE OF (ONEOF
(IfcStructuralSurfaceMemberVarying))
SUBTYPE OF (IfcStructuralMember);
PredefinedType : IfcStructuralSurfaceTypeEnum;
Thickness : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcStructuralSurfaceMemberVarying
SUBTYPE OF (IfcStructuralSurfaceMember);
SubsequentThickness : LIST [2:?] OF IfcPositiveLengthMeasure;
VaryingThicknessLocation : IfcShapeAspect;
DERIVE
VaryingThickness : LIST [3:?] OF IfcPositiveLengthMeasure := IfcAddToBeginOfList(SELF\IfcStructuralSurfaceMember.Thickness, SubsequentThickness);
WHERE
WR61 : EXISTS(SELF\IfcStructuralSurfaceMember.Thickness);
WR62 : SIZEOF(QUERY(temp <* SELF.VaryingThicknessLocation.ShapeRepresentations |
NOT(SIZEOF(temp\IfcRepresentation.Items) = 1)
)) = 0;
WR63 : SIZEOF(QUERY(temp <* SELF.VaryingThicknessLocation.ShapeRepresentations |
NOT(('IFC2X3.IFCCARTESIANPOINT' IN TYPEOF(temp\IfcRepresentation.Items[1]))
OR
('IFC2X3.IFCPOINTONSURFACE' IN TYPEOF(temp\IfcRepresentation.Items[1])))
)) = 0;
END_ENTITY;
ENTITY IfcStructuredDimensionCallout
SUBTYPE OF (IfcDraughtingCallout);
WHERE
WR31 : SIZEOF(QUERY ( Ato <* QUERY ( Con <* SELF.contents | (
'IFC2X3.IFCANNOTATIONTEXTOCCURRENCE' IN
TYPEOF(Con)) ) | (NOT (Ato.Name IN ['dimension value',
'tolerance value','unit text','prefix text','suffix text']))))
= 0;
END_ENTITY;
ENTITY IfcStyleModel
ABSTRACT SUPERTYPE OF (ONEOF
(IfcStyledRepresentation))
SUBTYPE OF (IfcRepresentation);
END_ENTITY;
ENTITY IfcStyledItem
SUPERTYPE OF (ONEOF
(IfcAnnotationOccurrence))
SUBTYPE OF (IfcRepresentationItem);
Item : OPTIONAL IfcRepresentationItem;
Styles : SET [1:?] OF IfcPresentationStyleAssignment;
Name : OPTIONAL IfcLabel;
WHERE
WR11 : SIZEOF(Styles) = 1;
WR12 : NOT('IFC2X3.IFCSTYLEDITEM' IN TYPEOF(Item));
END_ENTITY;
ENTITY IfcStyledRepresentation
SUBTYPE OF (IfcStyleModel);
WHERE
WR21 : SIZEOF(QUERY(temp <* SELF\IfcRepresentation.Items |
(NOT('IFC2X3.IFCSTYLEDITEM' IN TYPEOF(temp)))
)) = 0;
END_ENTITY;
ENTITY IfcSubContractResource
SUBTYPE OF (IfcConstructionResource);
SubContractor : OPTIONAL IfcActorSelect;
JobDescription : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcSubedge
SUBTYPE OF (IfcEdge);
ParentEdge : IfcEdge;
END_ENTITY;
ENTITY IfcSurface
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBoundedSurface
,IfcElementarySurface
,IfcSweptSurface))
SUBTYPE OF (IfcGeometricRepresentationItem);
END_ENTITY;
ENTITY IfcSurfaceCurveSweptAreaSolid
SUBTYPE OF (IfcSweptAreaSolid);
Directrix : IfcCurve;
StartParam : IfcParameterValue;
EndParam : IfcParameterValue;
ReferenceSurface : IfcSurface;
END_ENTITY;
ENTITY IfcSurfaceOfLinearExtrusion
SUBTYPE OF (IfcSweptSurface);
ExtrudedDirection : IfcDirection;
Depth : IfcLengthMeasure;
DERIVE
ExtrusionAxis : IfcVector := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector (ExtrudedDirection, Depth);
WHERE
WR41 : Depth > 0.;
END_ENTITY;
ENTITY IfcSurfaceOfRevolution
SUBTYPE OF (IfcSweptSurface);
AxisPosition : IfcAxis1Placement;
DERIVE
AxisLine : IfcLine := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcCurve() || IfcLine(AxisPosition.Location,
IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(AxisPosition.Z,1.0));
END_ENTITY;
ENTITY IfcSurfaceStyle
SUBTYPE OF (IfcPresentationStyle);
Side : IfcSurfaceSide;
Styles : SET [1:5] OF IfcSurfaceStyleElementSelect;
WHERE
WR11 : SIZEOF(QUERY(Style <* SELF.Styles |
'IFC2X3.IFCSURFACESTYLESHADING' IN
TYPEOF(Style)
)) <= 1;
WR12 : SIZEOF(QUERY(Style <* SELF.Styles |
'IFC2X3.IFCSURFACESTYLELIGHTING' IN
TYPEOF(Style)
)) <= 1;
WR13 : SIZEOF(QUERY(Style <* SELF.Styles |
'IFC2X3.IFCSURFACESTYLEREFRACTION' IN
TYPEOF(Style)
)) <= 1;
WR14 : SIZEOF(QUERY(Style <* SELF.Styles |
'IFC2X3.IFCSURFACESTYLEWITHTEXTURES' IN
TYPEOF(Style)
)) <= 1;
WR15 : SIZEOF(QUERY(Style <* SELF.Styles |
'IFC2X3.IFCEXTERNALLYDEFINEDSURFACESTYLE' IN
TYPEOF(Style)
)) <= 1;
END_ENTITY;
ENTITY IfcSurfaceStyleLighting;
DiffuseTransmissionColour : IfcColourRgb;
DiffuseReflectionColour : IfcColourRgb;
TransmissionColour : IfcColourRgb;
ReflectanceColour : IfcColourRgb;
END_ENTITY;
ENTITY IfcSurfaceStyleRefraction;
RefractionIndex : OPTIONAL IfcReal;
DispersionFactor : OPTIONAL IfcReal;
END_ENTITY;
ENTITY IfcSurfaceStyleRendering
SUBTYPE OF (IfcSurfaceStyleShading);
Transparency : OPTIONAL IfcNormalisedRatioMeasure;
DiffuseColour : OPTIONAL IfcColourOrFactor;
TransmissionColour : OPTIONAL IfcColourOrFactor;
DiffuseTransmissionColour : OPTIONAL IfcColourOrFactor;
ReflectionColour : OPTIONAL IfcColourOrFactor;
SpecularColour : OPTIONAL IfcColourOrFactor;
SpecularHighlight : OPTIONAL IfcSpecularHighlightSelect;
ReflectanceMethod : IfcReflectanceMethodEnum;
END_ENTITY;
ENTITY IfcSurfaceStyleShading
SUPERTYPE OF (ONEOF
(IfcSurfaceStyleRendering));
SurfaceColour : IfcColourRgb;
END_ENTITY;
ENTITY IfcSurfaceStyleWithTextures;
Textures : LIST [1:?] OF IfcSurfaceTexture;
END_ENTITY;
ENTITY IfcSurfaceTexture
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBlobTexture
,IfcImageTexture
,IfcPixelTexture));
RepeatS : BOOLEAN;
RepeatT : BOOLEAN;
TextureType : IfcSurfaceTextureEnum;
TextureTransform : OPTIONAL IfcCartesianTransformationOperator2D;
END_ENTITY;
ENTITY IfcSweptAreaSolid
ABSTRACT SUPERTYPE OF (ONEOF
(IfcExtrudedAreaSolid
,IfcRevolvedAreaSolid
,IfcSurfaceCurveSweptAreaSolid))
SUBTYPE OF (IfcSolidModel);
SweptArea : IfcProfileDef;
Position : IfcAxis2Placement3D;
WHERE
WR22 : SweptArea.ProfileType = IfcProfileTypeEnum.Area;
END_ENTITY;
ENTITY IfcSweptDiskSolid
SUBTYPE OF (IfcSolidModel);
Directrix : IfcCurve;
Radius : IfcPositiveLengthMeasure;
InnerRadius : OPTIONAL IfcPositiveLengthMeasure;
StartParam : IfcParameterValue;
EndParam : IfcParameterValue;
WHERE
WR1 : Directrix.Dim = 3;
WR2 : (NOT EXISTS(InnerRadius)) OR (Radius > InnerRadius);
END_ENTITY;
ENTITY IfcSweptSurface
ABSTRACT SUPERTYPE OF (ONEOF
(IfcSurfaceOfLinearExtrusion
,IfcSurfaceOfRevolution))
SUBTYPE OF (IfcSurface);
SweptCurve : IfcProfileDef;
Position : IfcAxis2Placement3D;
DERIVE
Dim : IfcDimensionCount := Position.Dim;
WHERE
WR1 : NOT('IFC2X3.IFCDERIVEDPROFILEDEF' IN TYPEOF(SweptCurve));
WR2 : SweptCurve.ProfileType = IfcProfileTypeEnum.Curve;
END_ENTITY;
ENTITY IfcSwitchingDeviceType
SUBTYPE OF (IfcFlowControllerType);
PredefinedType : IfcSwitchingDeviceTypeEnum;
END_ENTITY;
ENTITY IfcSymbolStyle
SUBTYPE OF (IfcPresentationStyle);
StyleOfSymbol : IfcSymbolStyleSelect;
END_ENTITY;
ENTITY IfcSystem
SUPERTYPE OF (ONEOF
(IfcElectricalCircuit
,IfcStructuralAnalysisModel))
SUBTYPE OF (IfcGroup);
INVERSE
ServicesBuildings : SET [0:1] OF IfcRelServicesBuildings FOR RelatingSystem;
END_ENTITY;
ENTITY IfcSystemFurnitureElementType
SUBTYPE OF (IfcFurnishingElementType);
END_ENTITY;
ENTITY IfcTShapeProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
Depth : IfcPositiveLengthMeasure;
FlangeWidth : IfcPositiveLengthMeasure;
WebThickness : IfcPositiveLengthMeasure;
FlangeThickness : IfcPositiveLengthMeasure;
FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
FlangeEdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
WebEdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
WebSlope : OPTIONAL IfcPlaneAngleMeasure;
FlangeSlope : OPTIONAL IfcPlaneAngleMeasure;
CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR1 : FlangeThickness < Depth;
WR2 : WebThickness < FlangeWidth;
END_ENTITY;
ENTITY IfcTable;
Name : STRING;
Rows : LIST [1:?] OF IfcTableRow;
DERIVE
NumberOfCellsInRow : INTEGER := HIINDEX(Rows[1].RowCells);
NumberOfHeadings : INTEGER := SIZEOF(QUERY( Temp <* Rows | Temp.IsHeading));
NumberOfDataRows : INTEGER := SIZEOF(QUERY( Temp <* Rows | NOT(Temp.IsHeading)));
WHERE
WR1 : SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells))) = 0;
WR2 : SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells))) = 0;
WR3 : { 0 <= NumberOfHeadings <= 1 };
END_ENTITY;
ENTITY IfcTableRow;
RowCells : LIST [1:?] OF IfcValue;
IsHeading : BOOLEAN;
INVERSE
OfTable : IfcTable FOR Rows;
END_ENTITY;
ENTITY IfcTankType
SUBTYPE OF (IfcFlowStorageDeviceType);
PredefinedType : IfcTankTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcTankTypeEnum.USERDEFINED) OR
((PredefinedType = IfcTankTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcTask
SUPERTYPE OF (ONEOF
(IfcMove
,IfcOrderAction))
SUBTYPE OF (IfcProcess);
TaskId : IfcIdentifier;
Status : OPTIONAL IfcLabel;
WorkMethod : OPTIONAL IfcLabel;
IsMilestone : BOOLEAN;
Priority : OPTIONAL INTEGER;
WHERE
WR1 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.Decomposes | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR2 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.IsDecomposedBy | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR3 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcTelecomAddress
SUBTYPE OF (IfcAddress);
TelephoneNumbers : OPTIONAL LIST [1:?] OF IfcLabel;
FacsimileNumbers : OPTIONAL LIST [1:?] OF IfcLabel;
PagerNumber : OPTIONAL IfcLabel;
ElectronicMailAddresses : OPTIONAL LIST [1:?] OF IfcLabel;
WWWHomePageURL : OPTIONAL IfcLabel;
WHERE
WR1 : EXISTS (TelephoneNumbers) OR
EXISTS (PagerNumber) OR
EXISTS (FacsimileNumbers) OR
EXISTS (ElectronicMailAddresses) OR
EXISTS (WWWHomePageURL);
END_ENTITY;
ENTITY IfcTendon
SUBTYPE OF (IfcReinforcingElement);
PredefinedType : IfcTendonTypeEnum;
NominalDiameter : IfcPositiveLengthMeasure;
CrossSectionArea : IfcAreaMeasure;
TensionForce : OPTIONAL IfcForceMeasure;
PreStress : OPTIONAL IfcPressureMeasure;
FrictionCoefficient : OPTIONAL IfcNormalisedRatioMeasure;
AnchorageSlip : OPTIONAL IfcPositiveLengthMeasure;
MinCurvatureRadius : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR1 : (PredefinedType <> IfcTendonTypeEnum.USERDEFINED) OR ((PredefinedType = IfcTendonTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
END_ENTITY;
ENTITY IfcTendonAnchor
SUBTYPE OF (IfcReinforcingElement);
END_ENTITY;
ENTITY IfcTerminatorSymbol
SUPERTYPE OF (ONEOF
(IfcDimensionCurveTerminator))
SUBTYPE OF (IfcAnnotationSymbolOccurrence);
AnnotatedCurve : IfcAnnotationCurveOccurrence;
END_ENTITY;
ENTITY IfcTextLiteral
SUPERTYPE OF (ONEOF
(IfcTextLiteralWithExtent))
SUBTYPE OF (IfcGeometricRepresentationItem);
Literal : IfcPresentableText;
Placement : IfcAxis2Placement;
Path : IfcTextPath;
END_ENTITY;
ENTITY IfcTextLiteralWithExtent
SUBTYPE OF (IfcTextLiteral);
Extent : IfcPlanarExtent;
BoxAlignment : IfcBoxAlignment;
WHERE
WR31 : NOT('IFC2X3.IFCPLANARBOX' IN TYPEOF(Extent));
END_ENTITY;
ENTITY IfcTextStyle
SUBTYPE OF (IfcPresentationStyle);
TextCharacterAppearance : OPTIONAL IfcCharacterStyleSelect;
TextStyle : OPTIONAL IfcTextStyleSelect;
TextFontStyle : IfcTextFontSelect;
END_ENTITY;
ENTITY IfcTextStyleFontModel
SUBTYPE OF (IfcPreDefinedTextFont);
FontFamily : OPTIONAL LIST [1:?] OF IfcTextFontName;
FontStyle : OPTIONAL IfcFontStyle;
FontVariant : OPTIONAL IfcFontVariant;
FontWeight : OPTIONAL IfcFontWeight;
FontSize : IfcSizeSelect;
WHERE
WR31 : ('IFC2X3.IFCLENGTHMEASURE' IN TYPEOF(SELF.FontSize)) AND
(SELF.FontSize > 0.);
END_ENTITY;
ENTITY IfcTextStyleForDefinedFont;
Colour : IfcColour;
BackgroundColour : OPTIONAL IfcColour;
END_ENTITY;
ENTITY IfcTextStyleTextModel;
TextIndent : OPTIONAL IfcSizeSelect;
TextAlign : OPTIONAL IfcTextAlignment;
TextDecoration : OPTIONAL IfcTextDecoration;
LetterSpacing : OPTIONAL IfcSizeSelect;
WordSpacing : OPTIONAL IfcSizeSelect;
TextTransform : OPTIONAL IfcTextTransformation;
LineHeight : OPTIONAL IfcSizeSelect;
END_ENTITY;
ENTITY IfcTextStyleWithBoxCharacteristics;
BoxHeight : OPTIONAL IfcPositiveLengthMeasure;
BoxWidth : OPTIONAL IfcPositiveLengthMeasure;
BoxSlantAngle : OPTIONAL IfcPlaneAngleMeasure;
BoxRotateAngle : OPTIONAL IfcPlaneAngleMeasure;
CharacterSpacing : OPTIONAL IfcSizeSelect;
END_ENTITY;
ENTITY IfcTextureCoordinate
ABSTRACT SUPERTYPE OF (ONEOF
(IfcTextureCoordinateGenerator
,IfcTextureMap));
INVERSE
AnnotatedSurface : SET [1:1] OF IfcAnnotationSurface FOR TextureCoordinates;
END_ENTITY;
ENTITY IfcTextureCoordinateGenerator
SUBTYPE OF (IfcTextureCoordinate);
Mode : IfcLabel;
Parameter : LIST [1:?] OF IfcSimpleValue;
END_ENTITY;
ENTITY IfcTextureMap
SUBTYPE OF (IfcTextureCoordinate);
TextureMaps : SET [1:?] OF IfcVertexBasedTextureMap;
WHERE
WR11 : SIZEOF([
'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
'IFC2X3.IFCFACEBASEDSURFACEMODEL',
'IFC2X3.IFCFACETEDBREP',
'IFC2X3.IFCFACETEDBREPWITHVOIDS']
* TYPEOF(SELF\IfcTextureCoordinate.AnnotatedSurface[1].Item)
) >= 1;
END_ENTITY;
ENTITY IfcTextureVertex;
Coordinates : LIST [2:2] OF IfcParameterValue;
END_ENTITY;
ENTITY IfcThermalMaterialProperties
SUBTYPE OF (IfcMaterialProperties);
SpecificHeatCapacity : OPTIONAL IfcSpecificHeatCapacityMeasure;
BoilingPoint : OPTIONAL IfcThermodynamicTemperatureMeasure;
FreezingPoint : OPTIONAL IfcThermodynamicTemperatureMeasure;
ThermalConductivity : OPTIONAL IfcThermalConductivityMeasure;
UNIQUE
UR11 : Material;
END_ENTITY;
ENTITY IfcTimeSeries
ABSTRACT SUPERTYPE OF (ONEOF
(IfcIrregularTimeSeries
,IfcRegularTimeSeries));
Name : IfcLabel;
Description : OPTIONAL IfcText;
StartTime : IfcDateTimeSelect;
EndTime : IfcDateTimeSelect;
TimeSeriesDataType : IfcTimeSeriesDataTypeEnum;
DataOrigin : IfcDataOriginEnum;
UserDefinedDataOrigin : OPTIONAL IfcLabel;
Unit : OPTIONAL IfcUnit;
INVERSE
DocumentedBy : SET [0:1] OF IfcTimeSeriesReferenceRelationship FOR ReferencedTimeSeries;
END_ENTITY;
ENTITY IfcTimeSeriesReferenceRelationship;
ReferencedTimeSeries : IfcTimeSeries;
TimeSeriesReferences : SET [1:?] OF IfcDocumentSelect;
END_ENTITY;
ENTITY IfcTimeSeriesSchedule
SUBTYPE OF (IfcControl);
ApplicableDates : OPTIONAL LIST [1:?] OF IfcDateTimeSelect;
TimeSeriesScheduleType : IfcTimeSeriesScheduleTypeEnum;
TimeSeries : IfcTimeSeries;
WHERE
WR41 : NOT(TimeSeriesScheduleType=IfcTimeSeriesScheduleTypeEnum.USERDEFINED) OR EXISTS(SELF\IfcObject.ObjectType);
END_ENTITY;
ENTITY IfcTimeSeriesValue;
ListValues : LIST [1:?] OF IfcValue;
END_ENTITY;
ENTITY IfcTopologicalRepresentationItem
ABSTRACT SUPERTYPE OF (ONEOF
(IfcConnectedFaceSet
,IfcEdge
,IfcFace
,IfcFaceBound
,IfcLoop
,IfcPath
,IfcVertex))
SUBTYPE OF (IfcRepresentationItem);
END_ENTITY;
ENTITY IfcTopologyRepresentation
SUBTYPE OF (IfcShapeModel);
WHERE
WR21 : SIZEOF(QUERY(temp <* SELF\IfcRepresentation.Items |
NOT('IFC2X3.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
)) = 0;
WR22 : EXISTS(SELF\IfcRepresentation.RepresentationType);
WR23 : IfcTopologyRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
END_ENTITY;
ENTITY IfcTransformerType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcTransformerTypeEnum;
END_ENTITY;
ENTITY IfcTransportElement
SUBTYPE OF (IfcElement);
OperationType : OPTIONAL IfcTransportElementTypeEnum;
CapacityByWeight : OPTIONAL IfcMassMeasure;
CapacityByNumber : OPTIONAL IfcCountMeasure;
END_ENTITY;
ENTITY IfcTransportElementType
SUBTYPE OF (IfcElementType);
PredefinedType : IfcTransportElementTypeEnum;
END_ENTITY;
ENTITY IfcTrapeziumProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
BottomXDim : IfcPositiveLengthMeasure;
TopXDim : IfcPositiveLengthMeasure;
YDim : IfcPositiveLengthMeasure;
TopXOffset : IfcLengthMeasure;
END_ENTITY;
ENTITY IfcTrimmedCurve
SUBTYPE OF (IfcBoundedCurve);
BasisCurve : IfcCurve;
Trim1 : SET [1:2] OF IfcTrimmingSelect;
Trim2 : SET [1:2] OF IfcTrimmingSelect;
SenseAgreement : BOOLEAN;
MasterRepresentation : IfcTrimmingPreference;
WHERE
WR41 : (HIINDEX(Trim1) = 1) OR (TYPEOF(Trim1[1]) <> TYPEOF(Trim1[2]));
WR42 : (HIINDEX(Trim2) = 1) OR (TYPEOF(Trim2[1]) <> TYPEOF(Trim2[2]));
WR43 : NOT('IFC2X3.IFCBOUNDEDCURVE' IN TYPEOF(BasisCurve));
END_ENTITY;
ENTITY IfcTubeBundleType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcTubeBundleTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcTubeBundleTypeEnum.USERDEFINED) OR
((PredefinedType = IfcTubeBundleTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcTwoDirectionRepeatFactor
SUBTYPE OF (IfcOneDirectionRepeatFactor);
SecondRepeatFactor : IfcVector;
END_ENTITY;
ENTITY IfcTypeObject
SUPERTYPE OF (ONEOF
(IfcTypeProduct))
SUBTYPE OF (IfcObjectDefinition);
ApplicableOccurrence : OPTIONAL IfcLabel;
HasPropertySets : OPTIONAL SET [1:?] OF IfcPropertySetDefinition;
INVERSE
ObjectTypeOf : SET [0:1] OF IfcRelDefinesByType FOR RelatingType;
WHERE
WR1 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcTypeProduct
SUPERTYPE OF (ONEOF
(IfcDoorStyle
,IfcElementType
,IfcWindowStyle))
SUBTYPE OF (IfcTypeObject);
RepresentationMaps : OPTIONAL LIST [1:?] OF UNIQUE IfcRepresentationMap;
Tag : OPTIONAL IfcLabel;
WHERE
WR41 : NOT(EXISTS(SELF\IfcTypeObject.ObjectTypeOf[1])) OR
(SIZEOF(QUERY(temp <* SELF\IfcTypeObject.ObjectTypeOf[1].RelatedObjects |
NOT('IFC2X3.IFCPRODUCT' IN TYPEOF(temp)))
) = 0);
END_ENTITY;
ENTITY IfcUShapeProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
Depth : IfcPositiveLengthMeasure;
FlangeWidth : IfcPositiveLengthMeasure;
WebThickness : IfcPositiveLengthMeasure;
FlangeThickness : IfcPositiveLengthMeasure;
FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
EdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
FlangeSlope : OPTIONAL IfcPlaneAngleMeasure;
CentreOfGravityInX : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR21 : FlangeThickness < (Depth / 2.);
WR22 : WebThickness < FlangeWidth;
END_ENTITY;
ENTITY IfcUnitAssignment;
Units : SET [1:?] OF IfcUnit;
WHERE
WR01 : IfcCorrectUnitAssignment(Units);
END_ENTITY;
ENTITY IfcUnitaryEquipmentType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcUnitaryEquipmentTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcUnitaryEquipmentTypeEnum.USERDEFINED) OR
((PredefinedType = IfcUnitaryEquipmentTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcValveType
SUBTYPE OF (IfcFlowControllerType);
PredefinedType : IfcValveTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcValveTypeEnum.USERDEFINED) OR
((PredefinedType = IfcValveTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcVector
SUBTYPE OF (IfcGeometricRepresentationItem);
Orientation : IfcDirection;
Magnitude : IfcLengthMeasure;
DERIVE
Dim : IfcDimensionCount := Orientation.Dim;
WHERE
WR1 : Magnitude >= 0.0;
END_ENTITY;
ENTITY IfcVertex
SUPERTYPE OF (ONEOF
(IfcVertexPoint))
SUBTYPE OF (IfcTopologicalRepresentationItem);
END_ENTITY;
ENTITY IfcVertexBasedTextureMap;
TextureVertices : LIST [3:?] OF IfcTextureVertex;
TexturePoints : LIST [3:?] OF IfcCartesianPoint;
END_ENTITY;
ENTITY IfcVertexLoop
SUBTYPE OF (IfcLoop);
LoopVertex : IfcVertex;
END_ENTITY;
ENTITY IfcVertexPoint
SUBTYPE OF (IfcVertex);
VertexGeometry : IfcPoint;
END_ENTITY;
ENTITY IfcVibrationIsolatorType
SUBTYPE OF (IfcDiscreteAccessoryType);
PredefinedType : IfcVibrationIsolatorTypeEnum;
WHERE
WR1 : (PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED) OR
((PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcVirtualElement
SUBTYPE OF (IfcElement);
END_ENTITY;
ENTITY IfcVirtualGridIntersection;
IntersectingAxes : LIST [2:2] OF UNIQUE IfcGridAxis;
OffsetDistances : LIST [2:3] OF IfcLengthMeasure;
END_ENTITY;
ENTITY IfcWall
SUPERTYPE OF (ONEOF
(IfcWallStandardCase))
SUBTYPE OF (IfcBuildingElement);
WHERE
WR1 : SIZEOF (QUERY(temp <* SELF\IfcObjectDefinition.HasAssociations |
'IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(temp)
)) <= 1;
END_ENTITY;
ENTITY IfcWallStandardCase
SUBTYPE OF (IfcWall);
WHERE
WR1 : SIZEOF (QUERY(temp <* USEDIN(SELF, 'IFC2X3.IFCRELASSOCIATES.RELATEDOBJECTS') |
('IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(temp)) AND
('IFC2X3.IFCMATERIALLAYERSETUSAGE' IN TYPEOF(temp.RelatingMaterial))
)) = 1;
END_ENTITY;
ENTITY IfcWallType
SUBTYPE OF (IfcBuildingElementType);
PredefinedType : IfcWallTypeEnum;
END_ENTITY;
ENTITY IfcWasteTerminalType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcWasteTerminalTypeEnum;
END_ENTITY;
ENTITY IfcWaterProperties
SUBTYPE OF (IfcMaterialProperties);
IsPotable : OPTIONAL BOOLEAN;
Hardness : OPTIONAL IfcIonConcentrationMeasure;
AlkalinityConcentration : OPTIONAL IfcIonConcentrationMeasure;
AcidityConcentration : OPTIONAL IfcIonConcentrationMeasure;
ImpuritiesContent : OPTIONAL IfcNormalisedRatioMeasure;
PHLevel : OPTIONAL IfcPHMeasure;
DissolvedSolidsContent : OPTIONAL IfcNormalisedRatioMeasure;
UNIQUE
UR11 : Material;
END_ENTITY;
ENTITY IfcWindow
SUBTYPE OF (IfcBuildingElement);
OverallHeight : OPTIONAL IfcPositiveLengthMeasure;
OverallWidth : OPTIONAL IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcWindowLiningProperties
SUBTYPE OF (IfcPropertySetDefinition);
LiningDepth : OPTIONAL IfcPositiveLengthMeasure;
LiningThickness : OPTIONAL IfcPositiveLengthMeasure;
TransomThickness : OPTIONAL IfcPositiveLengthMeasure;
MullionThickness : OPTIONAL IfcPositiveLengthMeasure;
FirstTransomOffset : OPTIONAL IfcNormalisedRatioMeasure;
SecondTransomOffset : OPTIONAL IfcNormalisedRatioMeasure;
FirstMullionOffset : OPTIONAL IfcNormalisedRatioMeasure;
SecondMullionOffset : OPTIONAL IfcNormalisedRatioMeasure;
ShapeAspectStyle : OPTIONAL IfcShapeAspect;
WHERE
WR31 : NOT(NOT(EXISTS(LiningDepth)) AND EXISTS(LiningThickness));
WR32 : NOT(NOT(EXISTS(FirstTransomOffset)) AND EXISTS(SecondTransomOffset));
WR33 : NOT(NOT(EXISTS(FirstMullionOffset)) AND EXISTS(SecondMullionOffset));
WR34 : EXISTS(SELF\IfcPropertySetDefinition.DefinesType[1]) AND
('IFC2X3.IFCWINDOWSTYLE' IN TYPEOF(SELF\IfcPropertySetDefinition.DefinesType[1]));
END_ENTITY;
ENTITY IfcWindowPanelProperties
SUBTYPE OF (IfcPropertySetDefinition);
OperationType : IfcWindowPanelOperationEnum;
PanelPosition : IfcWindowPanelPositionEnum;
FrameDepth : OPTIONAL IfcPositiveLengthMeasure;
FrameThickness : OPTIONAL IfcPositiveLengthMeasure;
ShapeAspectStyle : OPTIONAL IfcShapeAspect;
END_ENTITY;
ENTITY IfcWindowStyle
SUBTYPE OF (IfcTypeProduct);
ConstructionType : IfcWindowStyleConstructionEnum;
OperationType : IfcWindowStyleOperationEnum;
ParameterTakesPrecedence : BOOLEAN;
Sizeable : BOOLEAN;
END_ENTITY;
ENTITY IfcWorkControl
ABSTRACT SUPERTYPE OF (ONEOF
(IfcWorkPlan
,IfcWorkSchedule))
SUBTYPE OF (IfcControl);
Identifier : IfcIdentifier;
CreationDate : IfcDateTimeSelect;
Creators : OPTIONAL SET [1:?] OF IfcPerson;
Purpose : OPTIONAL IfcLabel;
Duration : OPTIONAL IfcTimeMeasure;
TotalFloat : OPTIONAL IfcTimeMeasure;
StartTime : IfcDateTimeSelect;
FinishTime : OPTIONAL IfcDateTimeSelect;
WorkControlType : OPTIONAL IfcWorkControlTypeEnum;
UserDefinedControlType : OPTIONAL IfcLabel;
WHERE
WR1 : (WorkControlType <> IfcWorkControlTypeEnum.USERDEFINED) OR
((WorkControlType = IfcWorkControlTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcWorkControl.UserDefinedControlType));
END_ENTITY;
ENTITY IfcWorkPlan
SUBTYPE OF (IfcWorkControl);
END_ENTITY;
ENTITY IfcWorkSchedule
SUBTYPE OF (IfcWorkControl);
END_ENTITY;
ENTITY IfcZShapeProfileDef
SUBTYPE OF (IfcParameterizedProfileDef);
Depth : IfcPositiveLengthMeasure;
FlangeWidth : IfcPositiveLengthMeasure;
WebThickness : IfcPositiveLengthMeasure;
FlangeThickness : IfcPositiveLengthMeasure;
FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
EdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
WHERE
WR21 : FlangeThickness < (Depth / 2.);
END_ENTITY;
ENTITY IfcZone
SUBTYPE OF (IfcGroup);
WHERE
WR1 : SIZEOF (QUERY (temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects | NOT(('IFC2X3.IFCZONE' IN TYPEOF(temp)) OR ('IFC2X3.IFCSPACE' IN TYPEOF(temp))) )) = 0;
END_ENTITY;
FUNCTION IfcAddToBeginOfList
(AScalar : GENERIC;
AList : LIST OF GENERIC:AL)
: LIST[1:?] OF GENERIC:AL;
LOCAL
Result : LIST OF GENERIC:AL := [];
END_LOCAL;
IF NOT(EXISTS(AScalar)) THEN
Result := AList;
ELSE
Result := Result + AScalar;
IF (HIINDEX(AList) >= 1) THEN
REPEAT i:=1 TO HIINDEX(AList);
Result[i+1] := AList[i];
END_REPEAT;
END_IF;
END_IF;
RETURN(Result);
END_FUNCTION;
FUNCTION IfcBaseAxis
(Dim : INTEGER;
Axis1, Axis2, Axis3 : IfcDirection)
: LIST [2:3] OF IfcDirection;
LOCAL
U : LIST [2:3] OF IfcDirection;
Factor : REAL;
D1, D2 : IfcDirection;
END_LOCAL;
IF (Dim = 3) THEN
D1 := NVL(IfcNormalise(Axis3), IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,0.0,1.0]));
D2 := IfcFirstProjAxis(D1, Axis1);
U := [D2, IfcSecondProjAxis(D1, D2, Axis2), D1];
ELSE
IF EXISTS(Axis1) THEN
D1 := IfcNormalise(Axis1);
U := [D1, IfcOrthogonalComplement(D1)];
IF EXISTS(Axis2) THEN
Factor := IfcDotProduct(Axis2, U[2]);
IF (Factor < 0.0) THEN
U[2].DirectionRatios[1] := -U[2].DirectionRatios[1];
U[2].DirectionRatios[2] := -U[2].DirectionRatios[2];
END_IF;
END_IF;
ELSE
IF EXISTS(Axis2) THEN
D1 := IfcNormalise(Axis2);
U := [IfcOrthogonalComplement(D1), D1];
U[1].DirectionRatios[1] := -U[1].DirectionRatios[1];
U[1].DirectionRatios[2] := -U[1].DirectionRatios[2];
ELSE
U := [IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.0, 0.0]),
IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0, 1.0])];
END_IF;
END_IF;
END_IF;
RETURN(U);
END_FUNCTION;
FUNCTION IfcBooleanChoose
(B : BOOLEAN ;
Choice1, Choice2 : Generic : Item)
: Generic : Item;
IF B THEN
RETURN (Choice1);
ELSE
RETURN (Choice2);
END_IF;
END_FUNCTION;
FUNCTION IfcBuild2Axes
(RefDirection : IfcDirection)
: LIST [2:2] OF IfcDirection;
LOCAL
D : IfcDirection := NVL(IfcNormalise(RefDirection),
IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.0,0.0]));
END_LOCAL;
RETURN([D, IfcOrthogonalComplement(D)]);
END_FUNCTION;
FUNCTION IfcBuildAxes
(Axis, RefDirection : IfcDirection)
: LIST [3:3] OF IfcDirection;
LOCAL
D1, D2 : IfcDirection;
END_LOCAL;
D1 := NVL(IfcNormalise(Axis), IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,0.0,1.0]));
D2 := IfcFirstProjAxis(D1, RefDirection);
RETURN ([D2, IfcNormalise(IfcCrossProduct(D1,D2)).Orientation, D1]);
END_FUNCTION;
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;
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;
ABSORBEDDOSEUNIT : IF
Dim = (IfcDimensionalExponents (2, 0, -2, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
RADIOACTIVITYUNIT : IF
Dim = (IfcDimensionalExponents (0, 0, -1, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ELECTRICCAPACITANCEUNIT : IF
Dim = (IfcDimensionalExponents (-2, 1, 4, 1, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
DOSEEQUIVALENTUNIT : IF
Dim = (IfcDimensionalExponents (2, 0, -2, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ELECTRICCHARGEUNIT : IF
Dim = (IfcDimensionalExponents (0, 0, 1, 1, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ELECTRICCONDUCTANCEUNIT : IF
Dim = (IfcDimensionalExponents (-2, -1, 3, 2, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ELECTRICVOLTAGEUNIT : IF
Dim = (IfcDimensionalExponents (2, 1, -3, -1, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ELECTRICRESISTANCEUNIT : IF
Dim = (IfcDimensionalExponents (2, 1, -3, -2, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ENERGYUNIT : IF
Dim = (IfcDimensionalExponents (2, 1, -2, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
FORCEUNIT : IF
Dim = (IfcDimensionalExponents (1, 1, -2, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
FREQUENCYUNIT : IF
Dim = (IfcDimensionalExponents (0, 0, -1, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
INDUCTANCEUNIT : IF
Dim = (IfcDimensionalExponents (2, 1, -2, -2, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
ILLUMINANCEUNIT : IF
Dim = (IfcDimensionalExponents (-2, 0, 0, 0, 0, 0, 1))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
LUMINOUSFLUXUNIT : IF
Dim = (IfcDimensionalExponents (0, 0, 0, 0, 0, 0, 1))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
MAGNETICFLUXUNIT : IF
Dim = (IfcDimensionalExponents (2, 1, -2, -1, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
MAGNETICFLUXDENSITYUNIT : IF
Dim = (IfcDimensionalExponents (0, 1, -2, -1, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
POWERUNIT : IF
Dim = (IfcDimensionalExponents (2, 1, -3, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
PRESSUREUNIT : IF
Dim = (IfcDimensionalExponents (-1, 1, -2, 0, 0, 0, 0))
THEN RETURN(TRUE);
ELSE RETURN(FALSE);
END_IF;
OTHERWISE :
RETURN (UNKNOWN);
END_CASE;
END_FUNCTION;
FUNCTION IfcCorrectLocalPlacement
(AxisPlacement:IfcAxis2Placement;
RelPlacement : IfcObjectPlacement)
: LOGICAL;
IF (EXISTS(RelPlacement)) THEN
IF ('IFC2X3.IFCGRIDPLACEMENT' IN TYPEOF(RelPlacement)) THEN
RETURN(?);
END_IF;
IF ('IFC2X3.IFCLOCALPLACEMENT' IN TYPEOF(RelPlacement)) THEN
IF ('IFC2X3.IFCAXIS2PLACEMENT2D' IN TYPEOF(AxisPlacement)) THEN
RETURN(TRUE);
END_IF;
IF ('IFC2X3.IFCAXIS2PLACEMENT3D' IN TYPEOF(AxisPlacement)) THEN
IF (RelPlacement.RelativePlacement.Dim = 3) THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END_IF;
END_IF;
ELSE
RETURN(TRUE);
END_IF;
RETURN(?);
END_FUNCTION;
FUNCTION IfcCorrectObjectAssignment
(Constraint: IfcObjectTypeEnum; Objects : SET[1:?] OF IfcObjectDefinition)
: LOGICAL;
LOCAL
Count : INTEGER := 0;
END_LOCAL;
IF NOT(EXISTS(Constraint)) THEN
RETURN(TRUE);
END_IF;
CASE Constraint OF
IfcObjectTypeEnum.NOTDEFINED : RETURN(TRUE);
IfcObjectTypeEnum.PRODUCT :
BEGIN
Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCPRODUCT' IN TYPEOF(temp))));
RETURN(Count = 0);
END;
IfcObjectTypeEnum.PROCESS :
BEGIN
Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCPROCESS' IN TYPEOF(temp))));
RETURN(Count = 0);
END;
IfcObjectTypeEnum.CONTROL :
BEGIN
Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCCONTROL' IN TYPEOF(temp))));
RETURN(Count = 0);
END;
IfcObjectTypeEnum.RESOURCE :
BEGIN
Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCRESOURCE' IN TYPEOF(temp))));
RETURN(Count = 0);
END;
IfcObjectTypeEnum.ACTOR :
BEGIN
Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCACTOR' IN TYPEOF(temp))));
RETURN(Count = 0);
END;
IfcObjectTypeEnum.GROUP :
BEGIN
Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCGROUP' IN TYPEOF(temp))));
RETURN(Count = 0);
END;
IfcObjectTypeEnum.PROJECT :
BEGIN
Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCPROJECT' IN TYPEOF(temp))));
RETURN(Count = 0);
END;
OTHERWISE : RETURN(?);
END_CASE;
END_FUNCTION;
FUNCTION IfcCorrectUnitAssignment
(Units : SET [1:?] OF IfcUnit)
: LOGICAL;
LOCAL
NamedUnitNumber : INTEGER := 0;
DerivedUnitNumber : INTEGER := 0;
MonetaryUnitNumber : INTEGER := 0;
NamedUnitNames : SET OF IfcUnitEnum := [];
DerivedUnitNames : SET OF IfcDerivedUnitEnum := [];
END_LOCAL;
NamedUnitNumber := SIZEOF(QUERY(temp <* Units | ('IFC2X3.IFCNAMEDUNIT' IN TYPEOF(temp)) AND NOT(temp.UnitType = IfcUnitEnum.USERDEFINED)));
DerivedUnitNumber := SIZEOF(QUERY(temp <* Units | ('IFC2X3.IFCDERIVEDUNIT' IN TYPEOF(temp)) AND NOT(temp.UnitType = IfcDerivedUnitEnum.USERDEFINED)));
MonetaryUnitNumber := SIZEOF(QUERY(temp <* Units | 'IFC2X3.IFCMONETARYUNIT' IN TYPEOF(temp)));
REPEAT i := 1 TO SIZEOF(Units);
IF (('IFC2X3.IFCNAMEDUNIT' IN TYPEOF(Units[i])) AND NOT(Units[i].UnitType = IfcUnitEnum.USERDEFINED)) THEN
NamedUnitNames := NamedUnitNames + Units[i].UnitType;
END_IF;
IF (('IFC2X3.IFCDERIVEDUNIT' IN TYPEOF(Units[i])) AND NOT(Units[i].UnitType = IfcDerivedUnitEnum.USERDEFINED)) THEN
DerivedUnitNames := DerivedUnitNames + Units[i].UnitType;
END_IF;
END_REPEAT;
RETURN((SIZEOF(NamedUnitNames) = NamedUnitNumber) AND (SIZEOF(DerivedUnitNames) = DerivedUnitNumber) AND (MonetaryUnitNumber <= 1));
END_FUNCTION;
FUNCTION IfcCrossProduct
(Arg1, Arg2 : IfcDirection)
: IfcVector;
LOCAL
Mag : REAL;
Res : IfcDirection;
V1,V2 : LIST[3:3] OF REAL;
Result : IfcVector;
END_LOCAL;
IF (NOT EXISTS (Arg1) OR (Arg1.Dim = 2)) OR (NOT EXISTS (Arg2) OR (Arg2.Dim = 2)) THEN
RETURN(?);
ELSE
BEGIN
V1 := IfcNormalise(Arg1).DirectionRatios;
V2 := IfcNormalise(Arg2).DirectionRatios;
Res := IfcRepresentationItem() || IfcGeometricRepresentationItem ()
|| IfcDirection([(V1[2]*V2[3] - V1[3]*V2[2]), (V1[3]*V2[1] - V1[1]*V2[3]), (V1[1]*V2[2] - V1[2]*V2[1])]);
Mag := 0.0;
REPEAT i := 1 TO 3;
Mag := Mag + Res.DirectionRatios[i]*Res.DirectionRatios[i];
END_REPEAT;
IF (Mag > 0.0) THEN
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(Res, SQRT(Mag));
ELSE
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(Arg1, 0.0);
END_IF;
RETURN(Result);
END;
END_IF;
END_FUNCTION;
FUNCTION IfcCurveDim
(Curve : IfcCurve)
: IfcDimensionCount;
IF ('IFC2X3.IFCLINE' IN TYPEOF(Curve))
THEN RETURN(Curve.Pnt.Dim);
END_IF;
IF ('IFC2X3.IFCCONIC' IN TYPEOF(Curve))
THEN RETURN(Curve.Position.Dim);
END_IF;
IF ('IFC2X3.IFCPOLYLINE' IN TYPEOF(Curve))
THEN RETURN(Curve.Points[1].Dim);
END_IF;
IF ('IFC2X3.IFCTRIMMEDCURVE' IN TYPEOF(Curve))
THEN RETURN(IfcCurveDim(Curve.BasisCurve));
END_IF;
IF ('IFC2X3.IFCCOMPOSITECURVE' IN TYPEOF(Curve))
THEN RETURN(Curve.Segments[1].Dim);
END_IF;
IF ('IFC2X3.IFCBSPLINECURVE' IN TYPEOF(Curve))
THEN RETURN(Curve.ControlPointsList[1].Dim);
END_IF;
IF ('IFC2X3.IFCOFFSETCURVE2D' IN TYPEOF(Curve))
THEN RETURN(2);
END_IF;
IF ('IFC2X3.IFCOFFSETCURVE3D' IN TYPEOF(Curve))
THEN RETURN(3);
END_IF;
RETURN (?);
END_FUNCTION;
FUNCTION IfcCurveWeightsPositive
(B: IfcRationalBezierCurve)
: BOOLEAN;
LOCAL
Result : BOOLEAN := TRUE;
END_LOCAL;
REPEAT i := 0 TO B.UpperIndexOnControlPoints;
IF B.Weights[i] <= 0.0 THEN
Result := FALSE;
RETURN(Result);
END_IF;
END_REPEAT;
RETURN(Result);
END_FUNCTION;
FUNCTION IfcDeriveDimensionalExponents
(x : IfcUnit)
: IfcDimensionalExponents;
LOCAL
Result : IfcDimensionalExponents :=
IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0);
END_LOCAL;
IF 'IFC2X3.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
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;
FUNCTION IfcDotProduct
(Arg1, Arg2 : IfcDirection)
: REAL;
LOCAL
Scalar : REAL;
Vec1, Vec2 : IfcDirection;
Ndim : INTEGER;
END_LOCAL;
IF NOT EXISTS (Arg1) OR NOT EXISTS (Arg2) THEN
Scalar := ?;
ELSE
IF (Arg1.Dim <> Arg2.Dim) THEN
Scalar := ?;
ELSE
BEGIN
Vec1 := IfcNormalise(Arg1);
Vec2 := IfcNormalise(Arg2);
Ndim := Arg1.Dim;
Scalar := 0.0;
REPEAT i := 1 TO Ndim;
Scalar := Scalar + Vec1.DirectionRatios[i]*Vec2.DirectionRatios[i];
END_REPEAT;
END;
END_IF;
END_IF;
RETURN (Scalar);
END_FUNCTION;
FUNCTION IfcFirstProjAxis
(ZAxis, Arg : IfcDirection)
: IfcDirection;
LOCAL
XAxis : IfcDirection;
V : IfcDirection;
Z : IfcDirection;
XVec : IfcVector;
END_LOCAL;
IF (NOT EXISTS(ZAxis)) THEN
RETURN (?) ;
ELSE
Z := IfcNormalise(ZAxis);
IF NOT EXISTS(Arg) THEN
IF (Z.DirectionRatios <> [1.0,0.0,0.0]) THEN
V := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.0,0.0,0.0]);
ELSE
V := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,1.0,0.0]);
END_IF;
ELSE
IF (Arg.Dim <> 3) THEN
RETURN (?) ;
END_IF;
IF ((IfcCrossProduct(Arg,Z).Magnitude) = 0.0) THEN
RETURN (?);
ELSE
V := IfcNormalise(Arg);
END_IF;
END_IF;
XVec := IfcScalarTimesVector(IfcDotProduct(V, Z), Z);
XAxis := IfcVectorDifference(V, XVec).Orientation;
XAxis := IfcNormalise(XAxis);
END_IF;
RETURN(XAxis);
END_FUNCTION;
FUNCTION IfcLeapYear
(Year : IfcYearNumber)
: BOOLEAN;
IF ((((Year MOD 4) = 0) AND ((Year MOD 100) <> 0)) OR
((Year MOD 400) = 0)) THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END_FUNCTION;
FUNCTION IfcListToArray
(Lis : LIST [0:?] OF GENERIC : T;
Low,U : INTEGER)
: ARRAY OF GENERIC : T;
LOCAL
N : INTEGER;
Res : ARRAY [Low:U] OF GENERIC : T;
END_LOCAL;
N := SIZEOF(Lis);
IF (N <> (U-Low +1)) THEN
RETURN(?);
ELSE
Res := [Lis[1] : N];
REPEAT i := 2 TO N;
Res[Low+i-1] := Lis[i];
END_REPEAT;
RETURN(Res);
END_IF;
END_FUNCTION;
FUNCTION IfcLoopHeadToTail
(ALoop : IfcEdgeLoop)
: LOGICAL;
LOCAL
N : INTEGER;
P : LOGICAL := TRUE;
END_LOCAL;
N := SIZEOF (ALoop.EdgeList);
REPEAT i := 2 TO N;
P := P AND (ALoop.EdgeList[i-1].EdgeEnd :=:
ALoop.EdgeList[i].EdgeStart);
END_REPEAT;
RETURN (P);
END_FUNCTION;
FUNCTION IfcMlsTotalThickness
(LayerSet : IfcMaterialLayerSet)
: IfcLengthMeasure;
LOCAL
Max : IfcLengthMeasure := LayerSet.MaterialLayers[1].LayerThickness;
END_LOCAL;
IF SIZEOF(LayerSet.MaterialLayers) > 1 THEN
REPEAT i := 2 TO HIINDEX(LayerSet.MaterialLayers);
Max := Max + LayerSet.MaterialLayers[i].LayerThickness;
END_REPEAT;
END_IF;
RETURN (Max);
END_FUNCTION;
FUNCTION IfcNoOfLayers
(Element : IfcElement )
: INTEGER;
LOCAL
Association : BAG OF IfcRelAssociates := [];
MaterialAssociation : SET OF IfcRelAssociatesMaterial := [];
END_LOCAL;
Association := USEDIN(Element, 'IFC2X3.IFCRELASSOCIATES.RELATEDOBJECTS');
IF SIZEOF (Association) > 0 THEN
REPEAT i := 1 TO HIINDEX(Association);
IF ('IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(Association[i])) THEN
MaterialAssociation := MaterialAssociation + Association[i];
END_IF;
END_REPEAT;
END_IF;
IF (SIZEOF(MaterialAssociation) <> 1) THEN
RETURN (?);
ELSE
IF 'IFC2X3.IFCMATERIAL' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
RETURN (1);
END_IF;
IF 'IFC2X3.IFCMATERIALLAYERSETUSAGE' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
RETURN (SIZEOF(MaterialAssociation[1].RelatingMaterial.ForLayerSet.MaterialLayers));
END_IF;
IF 'IFC2X3.IFCMATERIALLIST' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
RETURN (?);
END_IF;
END_IF;
RETURN (?);
END_FUNCTION;
FUNCTION IfcNormalise
(Arg : IfcVectorOrDirection)
: IfcVectorOrDirection;
LOCAL
Ndim : INTEGER;
V : IfcDirection
:= IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.,0.]);
Vec : IfcVector
:= IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector (
IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.,0.]), 1.);
Mag : REAL;
Result : IfcVectorOrDirection
:= V;
END_LOCAL;
IF NOT EXISTS (Arg) THEN
RETURN (?);
ELSE
Ndim := Arg.Dim;
IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg) THEN
BEGIN
V.DirectionRatios := Arg.Orientation.DirectionRatios;
Vec.Magnitude := Arg.Magnitude;
Vec.Orientation := V;
IF Arg.Magnitude = 0.0 THEN
RETURN(?);
ELSE
Vec.Magnitude := 1.0;
END_IF;
END;
ELSE
V.DirectionRatios := Arg.DirectionRatios;
END_IF;
Mag := 0.0;
REPEAT i := 1 TO Ndim;
Mag := Mag + V.DirectionRatios[i]*V.DirectionRatios[i];
END_REPEAT;
IF Mag > 0.0 THEN
Mag := SQRT(Mag);
REPEAT i := 1 TO Ndim;
V.DirectionRatios[i] := V.DirectionRatios[i]/Mag;
END_REPEAT;
IF 'IFC2X3.IFCVECTOR' IN TYPEOF(arg) THEN
Vec.Orientation := V;
Result := Vec;
ELSE
Result := V;
END_IF;
ELSE
RETURN(?);
END_IF;
END_IF;
RETURN (Result);
END_FUNCTION;
FUNCTION IfcOrthogonalComplement
(Vec : IfcDirection)
: IfcDirection;
LOCAL
Result : IfcDirection ;
END_LOCAL;
IF NOT EXISTS (Vec) OR (Vec.Dim <> 2) THEN
RETURN(?);
ELSE
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([-Vec.DirectionRatios[2], Vec.DirectionRatios[1]]);
RETURN(Result);
END_IF;
END_FUNCTION;
FUNCTION IfcPathHeadToTail
(APath : IfcPath)
: LOGICAL;
LOCAL
N : INTEGER := 0;
P : LOGICAL := UNKNOWN;
END_LOCAL;
N := SIZEOF (APath.EdgeList);
REPEAT i := 2 TO N;
P := P AND (APath.EdgeList[i-1].EdgeEnd :=:
APath.EdgeList[i].EdgeStart);
END_REPEAT;
RETURN (P);
END_FUNCTION;
FUNCTION IfcSameAxis2Placement
(ap1, ap2 : IfcAxis2Placement; Epsilon : REAL)
: LOGICAL;
RETURN (IfcSameDirection(ap1.P[1],ap2.P[1],Epsilon) AND
IfcSameDirection(ap1.P[2],ap2.P[2],Epsilon) AND
IfcSameCartesianPoint(ap1.Location,ap1.Location,Epsilon));
END_FUNCTION;
FUNCTION IfcSameCartesianPoint
(cp1, cp2 : IfcCartesianPoint; Epsilon : REAL)
: LOGICAL;
LOCAL
cp1x : REAL := cp1.Coordinates[1];
cp1y : REAL := cp1.Coordinates[2];
cp1z : REAL := 0;
cp2x : REAL := cp2.Coordinates[1];
cp2y : REAL := cp2.Coordinates[2];
cp2z : REAL := 0;
END_LOCAL;
IF (SIZEOF(cp1.Coordinates) > 2) THEN
cp1z := cp1.Coordinates[3];
END_IF;
IF (SIZEOF(cp2.Coordinates) > 2) THEN
cp2z := cp2.Coordinates[3];
END_IF;
RETURN (IfcSameValue(cp1x,cp2x,Epsilon) AND
IfcSameValue(cp1y,cp2y,Epsilon) AND
IfcSameValue(cp1z,cp2z,Epsilon));
END_FUNCTION;
FUNCTION IfcSameDirection
(dir1, dir2 : IfcDirection; Epsilon : REAL)
: LOGICAL;
LOCAL
dir1x : REAL := dir1.DirectionRatios[1];
dir1y : REAL := dir1.DirectionRatios[2];
dir1z : REAL := 0;
dir2x : REAL := dir2.DirectionRatios[1];
dir2y : REAL := dir2.DirectionRatios[2];
dir2z : REAL := 0;
END_LOCAL;
IF (SIZEOF(dir1.DirectionRatios) > 2) THEN
dir1z := dir1.DirectionRatios[3];
END_IF;
IF (SIZEOF(dir2.DirectionRatios) > 2) THEN
dir2z := dir2.DirectionRatios[3];
END_IF;
RETURN (IfcSameValue(dir1x,dir2x,Epsilon) AND
IfcSameValue(dir1y,dir2y,Epsilon) AND
IfcSameValue(dir1z,dir2z,Epsilon));
END_FUNCTION;
FUNCTION IfcSameValidPrecision
(Epsilon1, Epsilon2 : REAL)
: LOGICAL;
LOCAL
ValidEps1, ValidEps2 : REAL;
DefaultEps : REAL := 0.000001;
DerivationOfEps : REAL := 1.001;
UpperEps : REAL := 1.0;
END_LOCAL;
ValidEps1 := NVL(Epsilon1, DefaultEps);
ValidEps2 := NVL(Epsilon2, DefaultEps);
RETURN ((0.0 < ValidEps1) AND (ValidEps1 <= (DerivationOfEps * ValidEps2)) AND
(ValidEps2 <= (DerivationOfEps * ValidEps1)) AND (ValidEps2 < UpperEps));
END_FUNCTION;
FUNCTION IfcSameValue
(Value1, Value2 : REAL; Epsilon : REAL)
: LOGICAL;
LOCAL
ValidEps : REAL;
DefaultEps : REAL := 0.000001;
END_LOCAL;
ValidEps := NVL(Epsilon, DefaultEps);
RETURN ((Value1 + ValidEps > Value2) AND (Value1 < Value2 + ValidEps));
END_FUNCTION;
FUNCTION IfcScalarTimesVector
(Scalar : REAL; Vec : IfcVectorOrDirection)
: IfcVector;
LOCAL
V : IfcDirection;
Mag : REAL;
Result : IfcVector;
END_LOCAL;
IF NOT EXISTS (Scalar) OR NOT EXISTS (Vec) THEN
RETURN (?) ;
ELSE
IF 'IFC2X3.IFCVECTOR' IN TYPEOF (Vec) THEN
V := Vec.Orientation;
Mag := Scalar * Vec.Magnitude;
ELSE
V := Vec;
Mag := Scalar;
END_IF;
IF (Mag < 0.0 ) THEN
REPEAT i := 1 TO SIZEOF(V.DirectionRatios);
V.DirectionRatios[i] := -V.DirectionRatios[i];
END_REPEAT;
Mag := -Mag;
END_IF;
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(IfcNormalise(V), Mag);
END_IF;
RETURN (Result);
END_FUNCTION;
FUNCTION IfcSecondProjAxis
(ZAxis, XAxis, Arg: IfcDirection)
: IfcDirection;
LOCAL
YAxis : IfcVector;
V : IfcDirection;
Temp : IfcVector;
END_LOCAL;
IF NOT EXISTS(Arg) THEN
V := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,1.0,0.0]);
ELSE
V := Arg;
END_IF;
Temp := IfcScalarTimesVector(IfcDotProduct(V, ZAxis), ZAxis);
YAxis := IfcVectorDifference(V, Temp);
Temp := IfcScalarTimesVector(IfcDotProduct(V, XAxis), XAxis);
YAxis := IfcVectorDifference(YAxis, Temp);
YAxis := IfcNormalise(YAxis);
RETURN(YAxis.Orientation);
END_FUNCTION;
FUNCTION IfcShapeRepresentationTypes
(RepType : IfcLabel; Items : SET OF IfcRepresentationItem)
: LOGICAL;
LOCAL
Count : INTEGER := 0;
END_LOCAL;
CASE RepType OF
'Curve2D' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCCURVE' IN TYPEOF(temp))
AND (temp.Dim = 2)));
END;
'Annotation2D' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | (
SIZEOF(TYPEOF(temp) * [
'IFC2X3.IFCPOINT',
'IFC2X3.IFCCURVE',
'IFC2X3.IFCGEOMETRICCURVESET',
'IFC2X3.IFCANNOTATIONFILLAREA',
'IFC2X3.IFCDEFINEDSYMBOL',
'IFC2X3.IFCTEXTLITERAL',
'IFC2X3.IFCDRAUGHTINGCALLOUT']) = 1)
));
END;
'GeometricSet' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(temp))
OR ('IFC2X3.IFCPOINT' IN TYPEOF(temp))
OR ('IFC2X3.IFCCURVE' IN TYPEOF(temp))
OR ('IFC2X3.IFCSURFACE' IN TYPEOF(temp))));
END;
'GeometricCurveSet' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCGEOMETRICCURVESET' IN TYPEOF(temp))
OR ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(temp))
OR ('IFC2X3.IFCPOINT' IN TYPEOF(temp))
OR ('IFC2X3.IFCCURVE' IN TYPEOF(temp))));
REPEAT i:=1 TO HIINDEX(Items);
IF ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(Items[i]))
THEN
IF (SIZEOF(QUERY(temp <* Items[i]\IfcGeometricSet.Elements | 'IFC2X3.IFCSURFACE' IN TYPEOF(temp))) > 0)
THEN
Count := Count - 1;
END_IF;
END_IF;
END_REPEAT;
END;
'SurfaceModel' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | SIZEOF([
'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
'IFC2X3.IFCFACEBASEDSURFACEMODEL',
'IFC2X3.IFCFACETEDBREP',
'IFC2X3.IFCFACETEDBREPWITHVOIDS'] * TYPEOF(temp)) >= 1
));
END;
'SolidModel' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSOLIDMODEL' IN TYPEOF(temp))));
END;
'SweptSolid' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSWEPTAREASOLID' IN TYPEOF(temp))));
END;
'CSG' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOOLEANRESULT' IN TYPEOF(temp))));
END;
'Clipping' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOOLEANCLIPPINGRESULT' IN TYPEOF(temp))));
END;
'AdvancedSweptSolid' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSURFACECURVESWEPTAREASOLID' IN TYPEOF(temp))
OR ('IFC2X3.IFCSWEPTDISKSOLID' IN TYPEOF(temp))));
END;
'Brep' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCFACETEDBREP' IN TYPEOF(temp))
OR ('IFC2X3.IFCFACETEDBREPWITHVOIDS' IN TYPEOF(temp))));
END;
'BoundingBox' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOUNDINGBOX' IN TYPEOF(temp))));
IF (SIZEOF(Items) > 1)
THEN
Count := 0;
END_IF;
END;
'SectionedSpine' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSECTIONEDSPINE' IN TYPEOF(temp))));
END;
'MappedRepresentation' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCMAPPEDITEM' IN TYPEOF(temp))));
END;
OTHERWISE : RETURN(?);
END_CASE;
RETURN (Count = SIZEOF(Items));
END_FUNCTION;
FUNCTION IfcTopologyRepresentationTypes
(RepType : IfcLabel; Items : SET OF IfcRepresentationItem)
: LOGICAL;
LOCAL
Count : INTEGER := 0;
END_LOCAL;
CASE RepType OF
'Vertex' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items |
('IFC2X3.IFCVERTEX' IN TYPEOF(temp))));
END;
'Edge' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items |
('IFC2X3.IFCEDGE' IN TYPEOF(temp))));
END;
'Path' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items |
('IFC2X3.IFCPATH' IN TYPEOF(temp))));
END;
'Face' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items |
('IFC2X3.IFCFACE' IN TYPEOF(temp))));
END;
'Shell' :
BEGIN
Count := SIZEOF(QUERY(temp <* Items |
('IFC2X3.IFCOPENSHELL' IN TYPEOF(temp))
OR ('IFC2X3.IFCCLOSEDSHELL' IN TYPEOF(temp))));
END;
'Undefined': RETURN(TRUE);
OTHERWISE : RETURN(?);
END_CASE;
RETURN (Count = SIZEOF(Items));
END_FUNCTION;
FUNCTION IfcUniquePropertyName
(Properties : SET [1:?] OF IfcProperty)
: LOGICAL;
LOCAL
Names : SET OF IfcIdentifier := [];
END_LOCAL;
REPEAT i:=1 TO HIINDEX(Properties);
Names := Names + Properties[i].Name;
END_REPEAT;
RETURN (SIZEOF(Names) = SIZEOF(Properties));
END_FUNCTION;
FUNCTION IfcValidCalendarDate
(Date : IfcCalendarDate)
: LOGICAL;
IF NOT ({1 <= Date.DayComponent <= 31}) THEN
RETURN(FALSE);
END_IF;
CASE Date.MonthComponent OF
4 : RETURN({ 1<= Date.DayComponent <= 30});
6 : RETURN({ 1<= Date.DayComponent <= 30});
9 : RETURN({ 1<= Date.DayComponent <= 30});
11 : RETURN({ 1<= Date.DayComponent <= 30});
2 :
BEGIN
IF (IfcLeapYear(Date.YearComponent)) THEN
RETURN({ 1<= Date.DayComponent <= 29});
ELSE
RETURN({ 1<= Date.DayComponent <= 28});
END_IF;
END;
OTHERWISE : RETURN(TRUE);
END_CASE;
END_FUNCTION;
FUNCTION IfcValidTime
(Time: IfcLocalTime)
: BOOLEAN;
IF EXISTS (Time.SecondComponent) THEN
RETURN (EXISTS (Time.MinuteComponent));
ELSE
RETURN (TRUE);
END_IF;
END_FUNCTION;
FUNCTION IfcVectorDifference
(Arg1, Arg2 : IfcVectorOrDirection)
: IfcVector;
LOCAL
Result : IfcVector;
Res, Vec1, Vec2 : IfcDirection;
Mag, Mag1, Mag2 : REAL;
Ndim : INTEGER;
END_LOCAL;
IF ((NOT EXISTS (Arg1)) OR (NOT EXISTS (Arg2))) OR (Arg1.Dim <> Arg2.Dim) THEN
RETURN (?) ;
ELSE
BEGIN
IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg1) THEN
Mag1 := Arg1.Magnitude;
Vec1 := Arg1.Orientation;
ELSE
Mag1 := 1.0;
Vec1 := Arg1;
END_IF;
IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg2) THEN
Mag2 := Arg2.Magnitude;
Vec2 := Arg2.Orientation;
ELSE
Mag2 := 1.0;
Vec2 := Arg2;
END_IF;
Vec1 := IfcNormalise (Vec1);
Vec2 := IfcNormalise (Vec2);
Ndim := SIZEOF(Vec1.DirectionRatios);
Mag := 0.0;
Res := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0:Ndim]);
REPEAT i := 1 TO Ndim;
Res.DirectionRatios[i] := Mag1*Vec1.DirectionRatios[i] - Mag2*Vec2.DirectionRatios[i];
Mag := Mag + (Res.DirectionRatios[i]*Res.DirectionRatios[i]);
END_REPEAT;
IF (Mag > 0.0 ) THEN
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Res, SQRT(Mag));
ELSE
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Vec1, 0.0);
END_IF;
END;
END_IF;
RETURN (Result);
END_FUNCTION;
FUNCTION IfcVectorSum
(Arg1, Arg2 : IfcVectorOrDirection)
: IfcVector;
LOCAL
Result : IfcVector;
Res, Vec1, Vec2 : IfcDirection;
Mag, Mag1, Mag2 : REAL;
Ndim : INTEGER;
END_LOCAL;
IF ((NOT EXISTS (Arg1)) OR (NOT EXISTS (Arg2))) OR (Arg1.Dim <> Arg2.Dim) THEN
RETURN (?) ;
ELSE
BEGIN
IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg1) THEN
Mag1 := Arg1.Magnitude;
Vec1 := Arg1.Orientation;
ELSE
Mag1 := 1.0;
Vec1 := Arg1;
END_IF;
IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg2) THEN
Mag2 := Arg2.Magnitude;
Vec2 := Arg2.Orientation;
ELSE
Mag2 := 1.0;
Vec2 := Arg2;
END_IF;
Vec1 := IfcNormalise (Vec1);
Vec2 := IfcNormalise (Vec2);
Ndim := SIZEOF(Vec1.DirectionRatios);
Mag := 0.0;
Res := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0:Ndim]);
REPEAT i := 1 TO Ndim;
Res.DirectionRatios[i] := Mag1*Vec1.DirectionRatios[i] + Mag2*Vec2.DirectionRatios[i];
Mag := Mag + (Res.DirectionRatios[i]*Res.DirectionRatios[i]);
END_REPEAT;
IF (Mag > 0.0 ) THEN
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Res, SQRT(Mag));
ELSE
Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Vec1, 0.0);
END_IF;
END;
END_IF;
RETURN (Result);
END_FUNCTION;
RULE IfcRepresentationContextSameWCS FOR
(IfcGeometricRepresentationContext);
LOCAL
IsDifferent : LOGICAL := FALSE;
END_LOCAL;
IF (SIZEOF(IfcGeometricRepresentationContext) > 1)
THEN
REPEAT i := 2 TO HIINDEX(IfcGeometricRepresentationContext);
IF (IfcGeometricRepresentationContext[1].WorldCoordinateSystem :<>: IfcGeometricRepresentationContext[i].WorldCoordinateSystem)
THEN
IsDifferent := (NOT(IfcSameValidPrecision(IfcGeometricRepresentationContext[1].Precision,
IfcGeometricRepresentationContext[i].Precision)))
OR (NOT(IfcSameAxis2Placement(IfcGeometricRepresentationContext[1].WorldCoordinateSystem,
IfcGeometricRepresentationContext[i].WorldCoordinateSystem,
IfcGeometricRepresentationContext[1].Precision)));
IF (IsDifferent = TRUE) THEN
ESCAPE;
END_IF;
END_IF;
END_REPEAT;
END_IF;
WHERE
WR1 : IsDifferent = FALSE;
END_RULE;
RULE IfcSingleProjectInstance FOR
(IfcProject);
WHERE
WR1 : SIZEOF(IfcProject) <= 1;
END_RULE;
END_SCHEMA;