buildingSMART / buildingSMART/IFC4.x-development

Is there a constraint for material layer set reuse on occurrences of a type?

Open
#353 0 comments 0 reactions 0 assignees View on GitHub
allocated allocated-core ifc-update-out
Dominant language
Python
Stars
234
Forks
123
Avg merge
15h 4m
Merged PRs (30d)
5

Description

https://forums.buildingsmart.org/t/is-there-a-constraint-for-material-layer-set-reuse-on-occurrences-of-a-type/3666

The docs have this to say on the matter:

> The IfcMaterialLayerSetUsage is always assigned to an individual occurrence object (and only to relevant subtypes of [IfcElement](http://localhost:8001/schema/ifcproductextension/lexical/ifcelement.htm)). The [IfcMaterialLayerSet](http://localhost:8001/schema/ifcmaterialresource/lexical/ifcmateriallayerset.htm), referenced by *ForLayerSet* , **can however be shared** among several occurrence objects. If the element type is available (in other words, an instance of the relevant subtype of [IfcElementType](http://localhost:8001/schema/ifcproductextension/lexical/ifcelementtype.htm) exists), then the [IfcMaterialLayerSet](http://localhost:8001/schema/ifcmaterialresource/lexical/ifcmateriallayerset.htm) **can** be assigned to the element type. The assignment between a subtype of [IfcElement](http://localhost:8001/schema/ifcproductextension/lexical/ifcelement.htm) and the IfcMaterialLayerSetUsage is handled by [IfcRelAssociatesMaterial](http://localhost:8001/schema/ifcproductextension/lexical/ifcrelassociatesmaterial.htm).

In simpler terms, if a wall "X" is typed by wall type "Y", and wall type "Y" has a material layer set "ABC" (a usage is not allowed on a type), then the `ForLayerSet` of wall "X" **may** (i.e. can) reuse the material layer set "ABC".

Similar to https://forums.buildingsmart.org/t/must-mappedrepresentations-come-from-the-corresponding-ifc-type/3361 - this probably requires clarification, as material layer sets are a form of implicit geometry.

My proposal is that the word **may** be changed to **must**.

Therefore, if a type has a material layer set, any occurrences of that type which have a material layer set **must** reuse the layer set.

Similar argument for profile set usages.

Thoughts?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.