buildingSMART / bSDD

The buildingSMART Data Dictionary repository, where we publish the documentation, examples and more. We don't publish here the data, the source code of the bSDD service or the front end of the website.
https://www.buildingsmart.org/users/services/buildingsmart-data-dictionary/
MIT License
126 stars 35 forks source link

How to define USERDEFINED types in RelatedIfcEntityNamesList #97

Closed araccaine closed 1 week ago

araccaine commented 1 month ago

As I understand the documentation, the field RelatedIfcEntityNamesList can have multiple related IFC entitites.

But how do we define a IfcBeam with the USERDEFINED type MyBeam? Do we need to define a new relation with IsChildOf or something like that?

atomczak commented 1 month ago

You're correct with the "RelatedIfcEntityNamesList": [ "IfcBeamLINTEL" ] example. You can't use USERDEFINED because that is not a defined class in IFC dictionary. I know there is a dichotomy between official IFC4.3 and what we published in bSDD.

That is because we are trying to educate people not to use USERDEFINED and NOTDEFINED options, and instead simply leave the predefined type empty and assign a class (IfcClassificationReference) to a registered term. This way we increase consistency of the information.

To answer to your use case, I recommend modeling this as an IfcBeam without predefined type, with an IfcClassificationReference to MyBeam from your dictionary. And yes, MyBeam can be registered with relation IsChildOf IfcBeam. The added value of this approach is that one element can have multiple class references (for example if you are using multiple systems), which was not possible with predefined types.