Nesting IfcMaterialLayers, IfcMaterialConstituents ((ABS)IfcMaterialDefinition instead of IfcMaterial)

Hi all,

I wonder what the reasoning behind the “limitation” of IfcMaterialLayer and IfcMaterialConstituent on the Material attributes are to be of type IfcMaterial instead of allowing abstract IfcMaterialDefinition .

Use case: I have lots of wall types that consist of multiple layers, like to following taken from a library of a local LCA tool:

An ideal straight forward tree IMHO would be to model like this

MaterialLayerSet
|_ MaterialLayer (1)
|     |_Name: "OSB board"
|     |_LayerThickness : "18 mm"
|     |_Material : OSB (IfcMaterial)
|               |_ Name : "OrientedStrand"
|
|_ MaterialLayer (2)
     |_MaterialConstituentSet
     |    |_ MaterialConstituent (1)
     |           |_ Name "Mineral wool facade insulation")
     |           |_ Fraction : 0.7f
     |           |_ Material : MineralWool (IfcMaterial)
     |                    |_ Name : "Mineral Wool"
     |    |_ MaterialConstituent (2)
     |           |_ Name "Structural Timber")
     |           |_ Fraction : 0.3f
     |           |_ Material : Timber (IfcMaterial)
     |                    |_ Name : "structural timber"
|_ MaterialLayer (3)
     |_MaterialConstituentSet
     |    |_ MaterialConstituent (1)
[...]

There are other ways to model this of course including (but not limited to?)

  • Decomposing the wall into IfcBuildingElementPart ==> fragemented geometry
  • using an IfcMaterialRelationship and coming up with a Label to indicate this ? (semantically weak string labels on the relationship type)
  • a generic part-of IfcRel decompostion

I am working on a modeling guideline for BIM-based LCA assessment and have 100s of these cases with up to 15 materials nested in various forms. Each material has some LCA indicators like EPDs, are classified etc. etc.

Any thoughts or hints?
I have been looking through forums, implementers agreements etc… to no avail.

Thanks a lot for your thoughts!