Skip to content

More on Materials

Introduction

In ifcJSON (for Ifc<5), the link between the IfcBuildingElement (Wall, Slab, Column, Beam, Door, Window, Covering, ...) and the Materials is made via the IfcRelAssociatesMaterial relationship where the relatedObjects are the concerned IfcBuildingElement and the relatingMaterial is expanded on the relationship itself and not as a distinct elements with a GlobalId (GUID).

In IFC5, this will apparently change, with Material becoming an 'object' on it own.

flowchart TB
    subgraph relationship
        subgraph relatingMaterial
            IfcMaterialSelect([IfcMaterialSelect])
            IfcMaterialSelect --o IfcMaterialLayerSetUsage
            IfcMaterialSelect --o IfcMaterialLayerSet
            IfcMaterialSelect --o IfcMaterialLayer
            IfcMaterialSelect --o IfcMaterial
            IfcMaterialLayerSetUsage --o IfcMaterialLayerSet
            IfcMaterialLayerSet --o IfcMaterialLayer
            IfcMaterialLayer --o IfcMaterial
        end
        IfcRelAssociatesMaterial --o IfcMaterialSelect
    end
    subgraph relatedObjects
        IfcBuildingElement["IfcWall,<br/>IfcSlab,<br/>IfcColumn,<br/>IfcBeam,<br/>IfcDoor,<br/>IfcWindow,<br/>..."]
    end
    IfcRelAssociatesMaterial -- referenced via globalId --o IfcBuildingElement

This diagram is a simplification. Practically, The official 4.3.2.0 documentation for "IFC 4.3". is the source of detailed information.

There is the assignment of a Material to an Object (IfcMaterialList is deprecated in IFC4)

IFC Material Assignement

There is also the Layering

IFC Material Layer Set

IFC Material Layer Set Usage for a Wall:

IFC Material Layer Set Usage for Wall

IFC Material Layer Set Usage for a Slab:

IFC Material Layer Set Usage for Slab

A Material can be styled:

IFC Styled Item