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

**URL:** <https://forums.buildingsmart.org/t/nesting-ifcmateriallayers-ifcmaterialconstituents-abs-ifcmaterialdefinition-instead-of-ifcmaterial/6345>\
**Category:** IFC4.3\
**Tags:** ifc\
**Created:** [November 28, 2025, 11:16am UTC](https://forums.buildingsmart.org/t/nesting-ifcmateriallayers-ifcmaterialconstituents-abs-ifcmaterialdefinition-instead-of-ifcmaterial/6345 "2025-11-28T11:16:13Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jakob-beetz](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@jakob-beetz](https://forums.buildingsmart.org/u/jakob-beetz)\
**Post date:** [November 28, 2025, 11:16am UTC](https://forums.buildingsmart.org/t/nesting-ifcmateriallayers-ifcmaterialconstituents-abs-ifcmaterialdefinition-instead-of-ifcmaterial/6345/1 "2025-11-28T11:16:13Z")

</div>

Hi all,

I wonder what the reasoning behind the “limitation” of [IfcMaterialLayer](https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcMaterialLayer.htm) and [IfcMaterialConstituent](https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcMaterialConstituent.htm) on the `Material` attributes are to be of type [IfcMaterial](https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcMaterial.htm) instead of allowing abstract [IfcMaterialDefinition](https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcMaterialDefinition.htm) .

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:

 ![grafik](https://us1.discourse-cdn.com/flex016/uploads/buildingsmart1/original/2X/7/7d361155e2aae8b9b72e7d39d1e9e6e8e2a7ed20.png)

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

```auto
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](https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcBuildingElementPart.htm) ==\> fragemented geometry
- using an [IfcMaterialRelationship](https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcMaterialRelationship.htm) 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!
