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-layerIfcWalls - 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.