Introduction
This is the final part of Element Classification in ARCHICAD. Now this post is predominantly put together as a resource for other ARCHICAD users interested in gaining more knowledge around IFC so its not generally something I expect everyone to read top to bottom.
The point of the post though is to demonstrate that as well as Element Classification at both Component/Element and Type level there is also an additional way to classify elements in the IFC schema. This is covered by a series of Predefined Types. Some of these are available to the user when placing Components/Elements in the model. Many users who have dabbled with Element Classification will understand that a CEILING for example is a Predefined Type of a Covering. Graphisoft added this into the list to choose from but you could also choose Covering and then select CEILING from the Predefined Type list. Either method is valid.
However, this opportunity to classify at Component/Element level is also further expanded at Type level. As we have seen in the previous post some of the out-of-the-box library parts are classified with their Predefined Types at the Type level. The list of available Predefined Types is very extensive. The idea that IFC is very limited (except perhaps for infrastructure which is being developed for IFC5) is very much shown to be untrue.
The biggest issue for users is how they would practically use the Predefined Types. The Types can be setup in GDL objects but beyond this there is no way to preconfigure the settings. A user can do this work manually but in reality this creates a lot of work and a lot of management issues as projects change.
Note: All these Predefined Types are also covered in BS 8541-1:2012 in Appendix D Summary of the IFC Vocabulary (pages 24-60).
PredefinedType at Component/Element level
- Covering (IfcCovering) – CEILING, FLOORING, CLADDING, ROOFING, INSULATION, MEMBRANE, SLEEVING, WRAPPING, USERDEFINED and NOTDEFINED.
- Footing (IfcFooting) – FOOTING_BEAM, PAD_FOOTING, PILE_CAP, STRIP_FOOTING, USERDEFINED and NOTDEFINED.
- Railing (IfcRailing) – HANDRAIL, GUARDRAIL, BALUSTRADE, USERDEFINED and NOTDEFINED.
- Ramp (IfcRamp) STRAIGHT_RUN_RAMP, TWO_STRAIGHT_RUN_RAMP, QUARTER_TURN_RAMP, TWO_QUARTER_TURN_RAMP, HALF_TURN_RAMP, SPIRAL_RAMP, USERDEFINED and NOTDEFINED.
- Slab (IfcSlab) – FLOOR, ROOF, LANDING, BASESLAB, USERDEFINED and NOTDEFINED.
- Stair (IfcStair) – 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 and NOTDEFINED.
OperationType at Component/Element level
- Transport Element (IfcTransportElement) – ELEVATOR, ESCALATOR, MOVINGWALKWAY, USERDEFINED and NOTDEFINED.
PredefinedType at Type level
- IfcActuatorType – ELECTRICACTUATOR, HANDOPERATEDACTUATOR, HYDRAULICACTUATOR, PNEUMATICACTUATOR, THERMOSTATICACTUATOR, USERDEFINED and NOTDEFINED.
- IfcAirTerminalType – GRILLE, REGISTER, DIFFUSER, EYEBALL, IRIS, LINEARGRILLE, LINEARDIFFUSER, USERDEFINED and NOTDEFINED.
- IfcAirTerminalBoxType – CONSTANTFLOW, VARIABLEFLOWPRESSUREDEPENDANT, VARIABLEFLOWPRESSUREINDEPENDANT, USERDEFINED and NOTDEFINED.
- IfcAudioVisualApplianceType* – not yet available (IFC4)
- IfcAirToAirHeatRecoveryType – FIXEDPLATECOUNTERFLOWEXCHANGER, FIXEDPLATECROSSFLOWEXCHANGER, FIXEDPLATEPARALLELFLOWEXCHANGER, ROTARYWHEEL, RUNAROUNDCOILLOOP, HEATPIPE, TWINTOWERENTHALPHYRECOVERYLOOPS, THERMOSIPHONSEALEDTUBEHEATEXCHANGERS, THERMOSIPHONCOILTYPEHEATEXCHANGERS, USERDEFINED and NOTDEFINED.
- IfcAlarmType – BELL, BREAKGLASSBUTTON, LIGHT, MANUALPULLBOX, SIREN, WHISTLE, USERDEFINED and NOTDEFINED.
- IfcAssemblyType* – not yet available (IFC4)
- IfcBeamType – BEAM, JOIST, LINTEL, T-BEAM, USERDEFINED and NOTDEFINED.
- IfcBoilerType – WATER, STEAM, USERDEFINED and NOTDEFINED.
- IfcBuildingElementType – n/a
- IfcBuildingElementPartType – n/a
- IfcBuildingElementProxyType – USERDEFINED and NOTDEFINED.
- IfcBurnerType* – not yet available (IFC4)
- IfcCableCarrierFittingType – BEND, CROSS, REDUCER, TEE, USERDEFINED and NOTDEFINED.
- IfcCableFittingType* – not yet available (IFC4)
- IfcCableSegmentType – CABLELADDERSEGMENTTYPE, CABLETRAYSEGMENT, CABLETRUNKINGSEGMENT, CONDUITSEGMENT, USERDEFINED and NOTDEFINED.
- IfcChillerType – AIRCOOLED, WATERCOOLED, HEATRECOVERY, USERDEFINED and NOTDEFINED.
- IfcChimneyType* – not yet available (IFC4)
- IfcCoilType – DXCOOLINGCOIL, WATERCOOLINGCOIL, STEAMHEATINGCOIL, WATERHEATINGCOIL, ELECTRICHEATINGCOIL, GASHEATINGCOIL, USERDEFINED and NOTDEFINED.
- IfcColumnType – COLUMN, USERDEFINED and NOTDEFINED.
- IfcCommunicationsApplianceType* – not yet available (IFC4)
- IfcCompressorType – DYNAMIC, RECIPROCATING, ROTARY, SCROLL, TROCHOIDAL, SINGLESTAGE, BOOSTER, OPENTYPE, HERMETIC, SEMIHERMETIC, WELDEDSHELLHERMETIC, ROLLINGPISTON, ROTARYVANE, SINGLESCREW, TWINSCREW, USERDEFINED and NOTDEFINED.
- IfcCooledBeamType – ACTIVE, PASSIVE, USERDEFINED and NOTDEFINED.
- IfcCoolingTowerType – NATURALDRAFT, MECHANICALINDUCEDDRAFT, MECHANICALFORCEDDRAFT, USERDEFINED and NOTDEFINED.
- IfcCondenserType – WATERCOOLEDSHELLTUBE, WATERCOOLEDSHELLCOIL, WATERCOOLEDTUBEINTUBE, WATERCOOLEDBRAZEDPLATE, AIRCOOLED, EVAPORATIVECOOLED, USERDEFINED and NOTDEFINED.
- IfcControllerType – FLOATING, PROPORTIONAL, PROPORTIONALINTEGRAL, PROPORTIONALINTEGRALDERIVATIVE, TIMEDTWOPOSITION, TWOPOSITION, USERDEFINED and NOTDEFINED.
- IfcCoveringType – CEILING, FLOORING, ROOFING, INSULATION, MEMBRANE, SLEEVING, WRAPPING, USERDEFINED and NOTDEFINED.
- IfcCurtainWallType – USERDEFINED and NOTDEFINED.
- IfcDamperType – CONTROLDAMPER, FIREDAMPER, SMOKEDAMPER, FIRESMOKEDAMPER, BACKDRAFTDAMPER, RELIEFDAMPER, BLASTDAMPER, GRAVITYDAMPER, GRAVITYRELIEFDAMPER, BALANCINGDAMPER, FUMEHOODEXHAUST, USERDEFINED and NOTDEFINED.
- IfcDiscreteAccessoryType -n/a
- IfcDistributionChamberElementType – FORMEDDUCT, INSPECTIONCHAMBER, INSPECTIONPIT, MANHOLE, METERCHAMBER, SUMP, TRENCH, VALVECHAMBER, USERDEFINED and NOTDEFINED.
- IfcDistributionControlElementType – n/a
- IfcDistributionElementType – n/a
- IfcDistributionFlowElementType – n/a
- IfcDoorStyle – n/a
- IfcDoorType – not yet available (IFC4)
- IfcDuctFittingType – BEND, CONNECTOR, ENTRY, EXIT, JUNCTION, OBSTRUCTION, TRANSITION, USERDEFINED and NOTDEFINED.
- IfcDuctSegmentType – RIGIDSEGMENT, FLEXIBLESEGMENT, USERDEFINED and NOTDEFINED.
- IfcDuctSilencerType – FLATOVAL, RECTANGULAR, ROUND, USERDEFINED and NOTDEFINED.
- IfcElectricApplianceType – 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 and NOTDEFINED.
- IfcElectricDistributionBoardType* – not yet available (IFC4)
- IfcElectricFlowStorageDeviceType – BATTERY, CAPACITORBANK, HARMONICFILTER, INDUCTORBANK, UPS, USERDEFINED and NOTDEFINED.
- IfcElectricGeneratorType – USERDEFINED and NOTDEFINED.
- IfcElectricHeaterType – ELECTRICPOINTHEATER, ELECTRICCABLEHEATER, ELECTRICMATHEATER, USERDEFINED and NOTDEFINED.
- IfcElectricMotorType – DC, INDUCTION, POLYPHASE, RELUCTANCESYNCHRONOUS, SYNCHRONOUS, USERDEFINED and NOTDEFINED.
- IfcElectricTimeControlType – TIMECLOCK, TIMEDELAY, RELAY, USERDEFINED and NOTDEFINED.
- IfcElementType – n/a
- IfcElementComponentType – n/a
- IfcEngineType* – not yet available (IFC4)
- IfcEnergyConversionDeviceType – n/a
- IfcEvaporativeCoolerType – DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER, DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER, DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER, DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER, DIRECTEVAPORATIVEAIRWSHER, INDIRECTEVAPORATIVEPACKAGEAIRCOOLER, INDIRECTEVAPORATIVEWETCOIL, INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER, INDIRECTDIRECTCOMBINATION, USERDEFINED and NOTDEFINED.
- IfcEvaporatorType – DIRECTEXPANSIONSHELLANDTUBE, DIRECTEXPANSIONTUBEINTUBE, DIRECTEXPANSIONBRAZEDPLATE, FLOODEDSHELLANDTUBE, SHELLANDCOIL, USERDEFINED and NOTDEFINED.
- IfcFanType – CENTRIFUGALFORWARDCURVED, CENTRIFUGALRADIAL, CENTRIFUGALBACKWARDINLINEDCURVE, CENTRIFUGALAIRCOIL, TUBEAXIAL, VALEAXIAL, PROPELLORAXIAL, USERDEFINED and NOTDEFINED.
- IfcFastenerType – n/a
- IfcFilterType – AIRPARTICLEFILTER, ODORFILTER, OILFILTER, STRAINER, WATERFILTER, USERDEFINED and NOTDEFINED.
- IfcFireSuppressionTerminalType – BREECHINGINLET, FIREHYDRANT, HOSEREEL, SPRINKLER, SPRINKLERDETECTOR, USERDEFINED and NOTDEFINED.
- IfcFlowControllerType – n/a
- IfcFlowFittingType – n/a
- IfcFlowInstrumentType – PRESSUREGAUGE, THERMOMETER, AMMETER, FREQUENCYMETER, POWERFACTORMETER, PHASEANGLEMETER, VOLTMETER_PEAK, VOLTMETER_RMS, USERDEFINED and NOTDEFINED.
- IfcFlowMeterType – ELECTRICMETER, ENERGYMETER, FLOWMETER, GASMETER, OILMETER, WATERMETER, USERDEFINED and NOTDEFINED.
- IfcFlowMovingDeviceType – n/a
- IfcFlowSegmentType – n/a
- IfcFlowStorageDeviceType – n/a
- IfcFlowTerminalType – n/a
- IfcFlowTreatmentDeviceType – n/a
- IfcFurnitureType – SITE, FACTORY and NOTDEFINED.
- IfcFurnishingElementType – n/a
- IfcGasTerminalType – GASAPPLIANCE, GASBOOSTER, GASBURNER, USERDEFINED and NOTDEFINED.
- IfcGeographicalElementType* – not yet available (IFC4)
- IfcHeatExchangerType – PLATE, SHELLANDTUBE, USERDEFINED and NOTDEFINED.
- IfcHumidifierType – STEAMINJECTION, ADIABATICAIRWASHER, ADIABATICPAN, ADIABATICWETTEDELEMENT, ADIABATICATOMIZING, ADIABATICULTRASONIC, ADIABATICRIGIDMEDIA, ADIABATICCOMPRESSEDAIRNOZZLE, ASSISTEDELECTRIC, ASSISTEDNATURALGAS, ASSISTEDPROPANE, ASSISTEDBUTANE, ASSISTEDSTEAM, USERDEFINED and NOTDEFINED.
- IfcInterceptorType* – not yet available (IFC4)
- IfcJunctionBoxType – USERDEFINED and NOTDEFINED.
- IfcLampType – COMPACTFLUORESCENT, FLUORESCENT, HIGHPRESSUREMERCURY, HIGHPRESSURESODIUM, METALHALIDE, TUNGSTENFILAMENT, USERDEFINED and NOTDEFINED.
- IfcLightFixtureType – POINTSOURCE, DIRECTIONSOURCE, USERDEFINED and NOTDEFINED.
- IfcMechanicalFastenerType – n/a
- IfcMedicalDeviceType* – not yet available (IFC4)
- IfcMemberType – BRACE, CHORD, COLLAR, MEMBER, MULLION, PLATE, POST, PURLIN, RAFTER, STRINGER, STRUT, STUD, USERDEFINED and NOTDEFINED.
- IfcMotorConnectionType – BELTDRIVE, COUPLING, DIRECTDRIVE, USERDEFINED and NOTDEFINED.
- IfcOutletType – AUDIOVISUALOUTLET, COMMUNICATIONSOUTLET, POWEROUTLET, USERDEFINED and NOTDEFINED.
- IfcPipeFittingType – BEND, CONNECTOR, ENTRY, EXIT, JUNCTION, OBSTRUCTION, TRANSITION, USERDEFINED and NOTDEFINED.
- IfcPipeSegmentType – RIGIDSEGMENT, FLEXIBLESEGMENT, GUTTER, SPOOL, USERDEFINED and NOTDEFINED.
- IfcPlateType – CURTAIN_PANEL, SHEET, USERDEFINED and NOTDEFINED.
- IfcProtectiveDeviceType – FUSEDISCONNECTOR, CIRCUITBREAKER, EARTHFAILUREDEVICE, RISIDUALCURRENTCIRCUITBREAKER, RESIDUALCURRENTSWITCH, VARISTOR, USERDEFINED and NOTDEFINED.
- IfcProtectiveDeviceTrippingUnitType* – not yet available (IFC4)
- IfcPumpType – CIRCULATOR, ENDSUCTION, SPLITCASE, VERTICALINLINE, VERTICALTURBINE, USERDEFINED and NOTDEFINED.
- IfcRailingType – HANDRAIL, GUARDRAIL, BALUSTRADE, USERDEFINED and NOTDEFINED.
- IfcRampFlightType – STRAIGHT, SPIRAL, USERDEFINED and NOTDEFINED.
- IfcRoofType – FLOOR, ROOF, LANDING, BASESLAB, USERDEFINED and NOTDEFINED.
- IfcSanitaryTerminalType – BATH, CISTERN, SHOWER, SINK, SANITARYFOUNTAIN, TOILETPAN, URINAL, WASHHANDBASIN, WCSEAT, USERDEFINED and NOTDEFINED.
- IfcSensorType – CO2SENSOR, FIRESENSOR, FLOWSENSOR, GASSENSOR, HEATSENSOR, HUMIDITYSENSOR, LIGHTSENSOR, MOISTURESENSOR, MOVEMENTSENSOR, PRESSURESENSOR, SMOKESENSOR, SOUNDSENSOR, TEMPERATURESENSOR, USERDEFINED and NOTDEFINED.
- IfcShadingDeviceType* – not yet available (IFC4)
- IfcSlabType – FLOOR, ROOF, LANDING, BASESLAB, USERDEFINED and NOTDEFINED.
- IfcSolarDeviceType* – not yet available (IFC4)
- IfcSpaceType – USERDEFINED and NOTDEFINED.
- IfcSpaceHeaterType – SECTIONALRADIATOR, PANELRADIATOR, TUBULARRADIATOR, CONVECTOR, BASEBOARDHEATER, FINNEDTUBEUNIT, UNITHEATER, USERDEFINED and NOTDEFINED.
- IfcSpatialStructureElementType – n/a
- IfcStackTerminalType – BIRDCAGE, COWL, RAINWATERHOPPER, USERDEFINED and NOTDEFINED.
- IfcStairFlightType – STRAIGHT, WINDER, SPIRAL, CURVED, FREEFORM, USERDEFINED and NOTDEFINED.
- IfcSwitchingDeviceType – CONTACTOR, EMERGENCYSTOP, STARTER, SWITCHDISCONNECTOR, TOOGLESWITCH, USERDEFINED and NOTDEFINED.
- IfcSystemFurnitureElementType – n/a
- IfcTankType – PREFORMED, SECTIONAL, EXPANSION, PRESSUREVESSEL, USERDEFINED and NOTDEFINED.
- IfcTransformerType – CURRENT, FREQUENCY, VOLTAGE, USERDEFINED and NOTDEFINED.
- IfcTransportElementType – ELEVATOR, ESCALATOR, MOVINGWALKWAY, USERDEFINED and NOTDEFINED.
- IfcTubeBundleType – FINNED, USERDEFINED and NOTDEFINED.
- IfcUnitaryEquipmentType – AIRHANDLER, AIRCONDITIONINGUNIT, SPLITSYSTEM, ROOFTOPUNIT, USERDEFINED and NOTDEFINED.
- IfcUnitaryControlElementType* – not yet available (IFC4)
- IfcValveType – AIRRELEASE, ANTIVACUUM, CHANGEOVER, CHECK, COMMISSIONING, DIVERTING, DRAWOFFCOCK, DOUBLECHECK, DOUBLEREGULATING, FAUCET, FLUSHING, GASCOCK, GASTAP, ISOLATING, MIXING, PRESSUREREDUCING, PRESSURERELIEF, REGULATING, SAFETYCUTOFF, STEAMTRAP, STOPCOCK, USERDEFINED and NOTDEFINED.
- IfcVibrationIsolatorType – COMPRESSION, SPRING, USERDEFINED and NOTDEFINED.
- IfcWallType – STANDARD, POLYGONAL, SHEAR, ELEMENTEDWALL, PLUMBINGWALL, USERDEFINED and NOTDEFINED.
- IfcWasteTerminalType – FLOORTRAP, FLOORWASTE, GULLYSUMP, GULLYTRAP, GREASEINTERCEPTOR, OILINTERCEPTOR, PETROLINTERCEPTOR, ROOFDRAIN, WASTEDISPOSALUNIT, WASTETRAP, USERDEFINED and NOTDEFINED.
- IfcWindowStyle – n/a
- IfcWindowType – n/a
ConstructionType at Type level
- IfcDoorStyle – ALUMINIUM, HIGH_GRADE_STEEL, STEEL, WOOD, ALUMINIUM_WOOD, PLASTIC, OTHER_CONSTRUCTION and NOTDEFINED.
- IfcWindowStyle – ALUMINIUM, HIGH_GRADE_STEEL, STEEL, WOOD, ALUMINIUM_WOOD, PLASTIC, OTHER_CONSTRUCTION and NOTDEFINED.
OperationType at Type level
- IfcDoorStyle – 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 and NOTDEFINED.
- IfcWindowStyle – 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 and NOTDEFINED.
Conclusion
Those who state that IFC is very limited when it comes to classification have often not delved into the full breakdown available. (Amusingly on twitter yesterday (27.09.15) the classification got criticised for being too detailed in places! You can’t win!!) For ARCHICAD users the Predefined Types at Component/Element level are pretty straightforward and these can easily be pre-configured with Favorites. However, other than the out-of-the-box GDL objects (and other good GDL content) most of the Predefined Types at Type level would need to be assigned manually. This means editing each relevant Type which as mentioned in a previous post removes the automation of IFC mapping. This is not an elegant workflow.
Having looked at IFC4 there appears to be more scope to link the Predefined Types at both levels as there is more of a one-to-one relationship between Component/Element and Types. This should in the future allow greater automation / presets, with future versions of ARCHICAD. More on IFC4 another day.
Rob Jackson, Associate Director, Bond Bryan Architects