Confusing documentation on IfcMaterialProperties

The documentation for IfcMaterial states:

The Property Sets for Objects 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?

Bump. This seems like an easy fix?

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.

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 :slight_smile: It’s an easy documentation fix.

Whether or not materials should become rooted, is a separate discussion :slight_smile: You’re right that if you solve the rooted issue, you can simultaneously solve this issue too.