Archicad IFC: single-layer vs. composite walls — how do you normalize this in Speckle?

Hi everyone,

I’m currently working with IFC models exported from Archicad and evaluating them in Speckle Intelligence.

I’ve run into an issue with the IFC structure of walls:

For composite walls , Archicad exports the individual layers as IfcBuildingElementPart . The material and component quantities such as layer thickness are available on these parts.

For single-layer walls , the information is instead stored directly on the IfcWall , for example in Archicad property sets and wall quantities.

What makes this more difficult is that even if a single-layer wall is modelled in Archicad as a composite with only one skin, Archicad still seems to export it as a simple IfcWall rather than creating an IfcBuildingElementPart .

This behaviour has also been discussed in the Graphisoft Community:
“Ifc structure with composite elements”
https://community.graphisoft.com/t5/Project-data-BIM/Ifc-structure-with-composite-elements/td-p/680677

My goal in Speckle is to analyse everything consistently on layer/component level , for example:

  • material
  • layer thickness
  • area
  • volume
  • mass

At the moment I therefore have to deal with two different object types and property paths:

IfcBuildingElementPart for layers of composite walls

and

IfcWall for single-layer walls.

With Calculated Fields / Coalesce I can normalize individual property values to some extent, but the underlying object hierarchy is still different. I also need to avoid counting the parent IfcWall of composite walls together with its IfcBuildingElementPart s.

Has anyone dealt with this Archicad IFC behaviour in Speckle?

I’d be particularly interested in how you approach:

  • filtering IfcBuildingElementPart + only the relevant single-layer IfcWall s
  • creating a common “component/layer” dataset
  • normalizing material and quantity properties from the different IFC paths
  • avoiding duplicate quantities from parent walls and their parts
  • whether you solve this purely in Speckle Intelligence or preprocess the IFC/model first

Any examples of filters, Calculated Fields, or workflows would be very helpful.

1 Like