In an earlier post we looked at the requirements of COBie for both Components and Types. This series of posts are highly technical posts and not something I would expect users to understand in depth, although I know some of our power users will try and follow them. However this kind of understanding is important if you are setting up templates for ARCHICAD users. There is a fair bit of detail to understand so the information is split into three posts. We will look at the relationship between Components and Types in this post.
I was once described as a ‘BIM Mechanic’ which is very apt when it comes to this post. Anyone who owns a car needs to know how to drive it but doesn’t need to understand in the inner workings of its engine. As a ‘BIM Mechanic’ I maintain and finesse the templates our users utilise on their projects. They feed back minor niggles which we fix and we also introduce improvements as the tool improves. All the user needs to do is follow the guidance we set out to use the templates correctly. (Since I drafted this post Nathan Hildebrandt of Skewed has also written a post about the concept of Mechanic vs Driver. See here for more on this concept).
The post itself though was inspired by Brian Spears (@arktek), a fellow ARCHICAD user, from CJMW Architecture in the USA who posted a piece entitled “ArchiCAD to IFC Export Tests” on his blog. Brian is just taking his first steps to understand IFC and it is great to see someone else really trying to explore IFC with a similar testing process to how we develop our understanding. I thought I could give Brian a little more information to help with his understanding so thought i’d write a quick post. It quickly turned into a full research piece as I delved deeper into the information. Hopefully this work will help Brian and other ‘BIM Mechanics’ to move forward with their IFC understanding and create more ARCHICAD users focussed on robust open workflows.
In many ways the work shared in this blog series is the kind of work our users don’t see from our central BIM team. This research however is important to understand how our models are exported and get the best results using IFC. Many issues related to interoperability are to do with poor implementation by the user (and that’s not a criticism of users), but for many ARCHICAD users they don’t have a ‘BIM Mechanic’ to help them keep their template up to date. Hopefully some of this shared knowledge will prove useful to others.
Every 3-dimensional part of a model has an element classification. In ARCHICAD this is controlled with ‘Element Classification’ in Tags & Categories. An Autodesk Revit user would refer to these as Categories. Both authoring tools use a form of internal classification / categorisation.
In ARCHICAD this classification is pretty flexible and is fully aligned with the IFC standard (ISO 16739:2013). There are 52 choices (plus ARCHICAD’s default ‘ArchiCAD Type’) for a user to classify any Component/Element with. I will cover the ‘ArchiCAD Type’ classification in the next post.
Note: The Element Classification covered here is for IFC2x3 and this will be slightly different when IFC4 is introduced.
In ARCHICAD we drive the IFC Classification for both Components/Elements and Types when we select the Element Classification in Tags & Categories.
As there is a one-to-one relationship all of these settings can be saved as Favorites and use any tool to create them. This means the user doesn’t need to worry about the settings required. The only thing a user needs to do is use a Favorite or if one is not available then they need to simply pick the appropriate classification.
Image: The full list of Element Classification available to users in ARCHICAD 18 and 19
KEY: Black bold – ARCHICAD Element Classification in Tags & Categories; Blue – IFC2x3 IfcElement Classification; Green – IFC2x3 IfcTypeProduct Classification; Plum – How Solibri displays the Classification
ARCHICAD Element Classification
- Beam > IfcBeam > IfcBeamType (Beam)
- Building Element Proxy > IfcBuildingElementProxy > IfcBuildingElementProxyType (Object)
- Cable Carrier Fitting > IfcFlowFitting > IfcCableCarrierFittingtType (Cable Carrier Fitting)
- Cable Carrier Segment > IfcFlowSegment > IfcCableCarrierSegmentType (Cable Carrier)
- Ceiling > IfcCovering [with predefined type of CEILING] > IfcCoveringType (Suspended Ceiling)
- Column > IfcColumn > IfcColumnType (Column)
- Covering > IfcCovering  > IfcCoveringType (Covering)
- Curtain Wall > IfcCurtainWall > IfcCurtainWallType (Curtain Wall)
- Distribution Chamber Element > IfcDistributionChamberElement > IfcDistributionChamberElementType (Distribution Chamber Element)
- Distribution Element > IfcDistributionElement > IfcDistributionElementType  (Distribution Element)
- Door > IfcDoor > IfcDoorStyle (Door)
- Duct Fitting > IfcFlowFitting > IfcDuctFittingType (Duct Fitting)
- Duct Flow Terminal > IfcFlowTerminal > IfcAirTerminalType  (Air Terminal)
- Duct Segment > IfcFlowSegment > IfcDuctSegmentType (Duct)
- Fastener > IfcFastener > IfcFastenerType (Fastener)
- Footing > IfcFooting > no Type applicable (Footing)
- Flow Segment > IfcFlowSegment > IfcFlowSegmentType  (Flow Segment)
- Lamp > IfcFlowTerminal > IfcLampType  (Lamp)
- Light Fixture > IfcFlowTerminal > IfcLightFixtureType  (Light Fixture)
- Mechanical Fastener > IfcMechanicalFastener > IfcMechanicalFastenerType (Fastener) 
- Member > IfcMember > IfcMemberType (Member)
- Pile > IfcPile > no Type applicable (Pile)
- Pipe Fitting > IfcFlowFitting > IfcPipeFittingType (Pipe Fitting)
- Pipe Flow Terminal > IfcFlowTerminal > IfcSanitaryTerminalType  (Sanitary Terminal)
- Pipe Segment > IfcFlowSegment > IfcPipeSegmentType (Pipe)
- Plate > IfcPlate > IfcPlateType (Plate)
- Railing > IfcRailing > IfcRailingType (Railing)
- Ramp > IfcRamp > no Type applicable (Ramp)
- Ramp Flight > IfcRampFlight > IfcRampFlightType (Ramp)
- Reinforcing Bar > IfcReinforcingBar > no Type applicable (Reinforcing Bar)
- Reinforcing Mesh > IfcReinforcingMesh > no Type applicable (Reinforcing Mesh)
- Roof > IfcSlab [with predefined type of ROOF] > IfcRoofType (Roof)
- Site Geometry > no Element applicable > no Type applicable  (Site)
- Slab > IfcSlab > IfcSlabType (Slab)
- Stair > IfcStair > no Type applicable (Stair)
- Stair Flight > IfcStairFlight > IfcStairFlightType (Stair)
- Tendon > IfcTendon > no Type applicable (Tendon)
- Tendon Anchor > IfcTendonAnchor > no Type applicable (Tendon Anchor)
- Transport Element > IfcTransportElement > IfcTransportElementType (Transport Element)
- Wall > IfcWall or IfcWallStandardCase > IfcWallType (Wall)
- Window > IfcWindow > IfcWindowStyle (Window)
 Covering’s have predefined types which can be selected.
 This does break down further but these are covered by ARCHICAD’s other categories.
 Can be manually edited although Types are covered elsewhere – see next section.
 Site Geometry has no IFC data and so is not covered in the IFC Scheme.
So far so good as the relationship between ARCHICAD’s Element Classification and how they are classified in IFC2x3 at both Component/Element level and Type level will be correct. However, things get a little more complicated with the remaining Element Classifications.
The following Element Classification drive the IFC2x3 Classification but at the Type level they default to a set Type. So those in green are the ones that would be chosen if only the Element Classification in Tags & Categories are used. The red ones need to manually be amended in the IFC Manager by the user. See below this list for a description of how this can be done.
KEY: Black bold – ARCHICAD Element Classification in Tags & Categories; Blue – IFC2x3 IfcElement Classification; Green – IFC2x3 IfcTypeProduct Classification; Red – Alternative IfcTypeProduct Classification if changed manually by the user; Plum – How Solibri displays the Classification
- Discrete Accessory > IfcDiscreteAccessory > IfcDiscreteAccessoryType (Discrete Accessory) or IfcVibrationIsolatorType (Discrete Accessory)
- Distribution Control Element > IfcDistributionControlElement > IfcControllerType (Distribution Element) or IfcActuator (Distribution Element), IfcAlarmType (Distribution Element), IfcFlowInstrumentType (Distribution Element), IfcSensorType (Distribution Element)
- Distribution Flow Element > IfcDistributionFlowElement > IfcValveType (Valve) or IfcAirTerminalBoxType (Air Terminal Box), IfcDamperType (Damper), IfcElectricTimeControl (Electric Time Control), IfcFlowMeterType (Flow Meter), IfcProtectiveDeviceType (Protective Device), IfcSwitchingDeviceType (Switching Device)
- Energy Conversion Device > IfcEnergyConversionDevice > IfcTransformerType (Transformer) or IfcAirToAirHeatRecoveryType (Air To Air Heat Recovery), IfcBoilerType (Boiler), IfcChillerType (Chiller), IfcCoilType (Coil), IfcCondenserType (Condenser), IfcCooledBeamType (Cooled Beam), IfcCoolingTowerType (Cooling Tower), IfcElectricGeneratorType (Electric Generator), IfcElectricMotorType (Electric Motor), IfcEvaporativeCoolerType (Evaporative Cooler), IfcEvaporatorType (Evaporator), IfcHeatExchangeType (Heat Exchanger), IfcHumidifierType (Humidifier), IfcMotorConnectionType (Motor Connection), IfcSpaceHeaterType (Space Heater), IfcTubeBundleType (Tube Bundle), IfcUnitaryEquipmentType (Unitary Equipment)
- Flow Controller > IfcFlowController > IfcValveType (Valve) or IfcAirTerminalBoxType (Air Terminal Box), IfcDamperType (Damp), IfcElectricTimeControl (Electric Time Control), IfcFlowMeterType (Flow Meter), IfcProtectiveDeviceType (Protective Device), IfcSwitchingDeviceType (Switching Device)
- Flow Fitting > IfcFlowFitting > IfcPipeFittingType (Pipe Fitting) or IfcJunctionBoxType (Junction Box) 
- Flow Moving Device > IfcFlowMovingDevice > IfcPumpType (Pump) or IfcCompressorType (Compressor), IfcFanType (Fan)
- Flow Storage Device > IfcFlowStorageDevice > IfcTankType (Tank) or IfcElectricFlowStorageDeviceType (Electric Flow Storage Device)
- Flow Terminal > IfcFlowTerminal > IfcFlowTerminalType (Flow Terminal) or IfcElectricApplianceType (Electric Appliance), IfcElectricHeaterType (Electric Heater), IfcFireSuppressionTerminalType (Fire Suppression Terminal), IfcGasTerminalType (Gas Terminal), IfcOutletType (Outlet), IfcStackTerminalType (Stack Terminal), IfcWasteTerminalType (Waste Terminal)
- Flow Treatment Device > IfcFlowTreatmentDevice > IfcFilterType (Filter) or IfcDuctSilencerType (Duct Silencer)
- Furniture > IfcFurnishingElement > IfcFurnishingElementType (Furniture) or IfcFurnitureType (Furniture), IfcSystemFurnitureElementType (Furniture)
Now in reality when you look at the list the items in red at Type level are almost all mechanical and electrical items. So as Architects there is very little requirement to carry out a manual override. So for Architects using ARCHICAD the Element Classification should not present any issues. It would only really be an issue if you were a Building Services Engineer using ARCHICAD but this can be solved in other ways – see part 2 of this blog.
How to control the one-to-many relationships
Its a pretty simple process to edit the Type Classification.
1. Go to the IFC Manager and navigate to the Type you wish to alter.
2. Edit the Type by selecting it and choosing the small pen symbol in the bottom left.
3. Then select the Type and use the icon directly to the left of the ‘New Property / Classification…’ at the bottom of the IFC Manager dialogue to select the correct Type.
Image: IFC Manager enables Classification to be altered for some Element Classifications
I do believe that the Element Classification would be easier to understand with the full list of classification available to a user at the Element/Component level and remove the need for manual overriding. For example it would be easier for Architects to understand what a Sanitary Terminal is rather than Pipe Flow Terminal and Air Terminal rather than Duct Flow Terminal. It looks like IFC4 may well simplify this process anyway going forward and the implementation of IFC4 may be an opportunity for Graphisoft to revisit this process.
That said for our users its simple case of ensuring they use the right Element Classification which is driven from our Favorites. As a ‘BIM Mechanic’ I have setup our template so that the user doesn’t have to worry about it.
In part 2 we will look more in detail about how library objects work with Element Classification.
Rob Jackson, Associate Director, Bond Bryan Architects
Terms and conditions
All content provided on this BIM Blog is for informational purposes only. The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. Bond Bryan Architects will not be liable for any errors or omissions in this information nor for the availability of this information. Bond Bryan Architects will not be liable for any losses, injuries, or damages from the display or use of this information.
We are happy for others to share our blog pieces through all social media platforms. You may include links to the original blog pieces and use part of the blog to then provide a link to the original content. However we would appreciate it if the content is not reproduced in full on other sites or publications without written consent being granted by Bond Bryan Architects.
This policy is subject to change at any time.