# Confusing documentation on IfcMaterialProperties

**URL:** <https://forums.buildingsmart.org/t/confusing-documentation-on-ifcmaterialproperties/2253>\
**Category:** Developers\
**Created:** [January 11, 2020, 8:56pm UTC](https://forums.buildingsmart.org/t/confusing-documentation-on-ifcmaterialproperties/2253 "2020-01-11T20:56:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Moult](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.buildingsmart.org/moult/32/196_2.png) [@Moult](https://forums.buildingsmart.org/u/Moult)\
**Post date:** [January 11, 2020, 8:56pm UTC](https://forums.buildingsmart.org/t/confusing-documentation-on-ifcmaterialproperties/2253/1 "2020-01-11T20:56:38Z")

</div>

The documentation for [IfcMaterial](https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/link/ifcmaterial.htm) states:

> The [Property Sets for Objects](https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/templates/property-sets-for-objects.htm) concept template applies to this entity as shown in Table 694.

I find this statement confusing, as `IfcMaterial` is not a subclass of `IfcObject`, and does not have any `IsDefinedBy` attribute. Therefore, I see no way to apply a property set, such as `Pset_MaterialCommon`.

I believe the documentation should be amended to describe how `IfcMaterial` can have property sets applied via the `HasProperties` attribute and the `IfcMaterialProperties` entity (which would replace `IfcPropertySet` in the more traditional application).

Maybe this warrants a new page in chapter 4, perhaps called “Property Sets for Materials”, to remove the confusion.

Thoughts?

---

<div class="post-metadata">

**Author:** ![Moult](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.buildingsmart.org/moult/32/196_2.png) [@Moult](https://forums.buildingsmart.org/u/Moult)\
**Post date:** [May 26, 2020, 11:19pm UTC](https://forums.buildingsmart.org/t/confusing-documentation-on-ifcmaterialproperties/2253/2 "2020-05-26T23:19:56Z")

</div>

Bump. This seems like an easy fix?

---

<div class="post-metadata">

**Author:** ![stefkeB](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.buildingsmart.org/stefkeb/32/1755_2.png) [@stefkeB](https://forums.buildingsmart.org/u/stefkeB)\
**Post date:** [June 2, 2020, 12:20pm UTC](https://forums.buildingsmart.org/t/confusing-documentation-on-ifcmaterialproperties/2253/3 "2020-06-02T12:20:22Z")

</div>

Maybe the concept does not apply the same was as with the property assignment, but that doesn’t prevent ARCHICAD to export material properties in IFC4.

E.g. #264 is the Beam and #313 associates the material to it. #302 links material property #304 to the material #283

```
#264= IFCBEAM('0PJFSl0TrvIAWOD7c$Xxg1',#32,'Betonnen Balk',$,$,#199,#253,'194CF72F-01DD-7948-A818-3479BF87BA81',.NOTDEFINED.);
#279= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Tj0c2SdJgDTrztiPOLNpw',#32,$,$,(#264,#695,#1064,#1373,#1663,#2063,#2461,#2759,#3049,#3357,#15487),#177);
#283= IFCMATERIAL('Beton gewapend C vloer',$,$);
#290= IFCMATERIALPROPERTIES('Pset_MaterialThermal',$,(#294,#301),#283);
#294= IFCPROPERTYSINGLEVALUE('ThermalConductivity',$,IFCTHERMALCONDUCTIVITYMEASURE(2.5),$);
#301= IFCPROPERTYSINGLEVALUE('SpecificHeatCapacity',$,IFCSPECIFICHEATCAPACITYMEASURE(1000.),$);
#302= IFCMATERIALPROPERTIES('Pset_MaterialCommon',$,(#304),#283);
#304= IFCPROPERTYSINGLEVALUE('MassDensity',$,IFCMASSDENSITYMEASURE(2400.),$);
#305= IFCMATERIALPROPERTIES('AC_Pset_MaterialCustom',$,(#307,#308,#309,#310,#311,#312),#283);
#307= IFCPROPERTYSINGLEVALUE('Embodied Energy',$,IFCTEXT('2.33 (MJ/kg)'),$);
#308= IFCPROPERTYSINGLEVALUE('Embodied Carbon',$,IFCTEXT('0.242 (kgCO\X2\2082\X0\/kg)'),$);
#309= IFCPROPERTYSINGLEVALUE('ID',$,IFCTEXT('26.26.'),$);
#310= IFCPROPERTYSINGLEVALUE('Description',$,IFCTEXT('ter plaatse gestorte elementen - draagvloeren'),$);
#311= IFCPROPERTYSINGLEVALUE('Manufacturer',$,IFCTEXT(''),$);
#312= IFCPROPERTYSINGLEVALUE('Participates in Collision Detection',$,IFCBOOLEAN(.T.),$);
#313= IFCRELASSOCIATESMATERIAL('3nM6JgM$PvFSPJexv9rXVI',#32,$,$,(#264,#1373,#1663,#3049,#3357),#283);

```

So I’d guess that the **concept** applies, but as **IfcMaterial** is not an **IfcObjectDefinition** , it cannot use the same relationship.

Would you rather promote IfcMaterial to an actual object? If you think as a manufacturer, I’d say yes. But a material usually has no shape placement like a Product.

However, it can be argued that it would fit the **IfcObjectDefinition** concept and may have assignments, could be decomposed or decomposes another object and may have associations (such as a classification). I believe that not having this mother class effectively prevents materials to be classified. A bit unfortunate, as many classification systems do distinguish based on materials, at least in some of their tables.

---

<div class="post-metadata">

**Author:** ![Moult](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.buildingsmart.org/moult/32/196_2.png) [@Moult](https://forums.buildingsmart.org/u/Moult)\
**Post date:** [June 2, 2020, 10:26pm UTC](https://forums.buildingsmart.org/t/confusing-documentation-on-ifcmaterialproperties/2253/4 "2020-06-02T22:26:21Z")

</div>

Correct, the concept is not the same. It’s not hard to figure out as you have, so I’m thankful that ArchiCAD has implemented it correctly. For what its worth, the BlenderBIM Add-on has also implemented material properties for a while now. All I’m saying is that the documentation currently doesn’t talk about how to do it, so one has to make assumptions 🙂 It’s an easy documentation fix.

Whether or not materials should become [rooted](https://forums.buildingsmart.org/t/proposal-for-ifcmaterial-to-become-rooted/2721), is a separate discussion 🙂 You’re right that if you solve the rooted issue, you can simultaneously solve this issue too.
