Skip to content

Interpreting classifications and properties for grouped objects #416

Description

@michaeldejong

Hi all,

I somewhat regularly see customers submitting IFC files for validation that contain objects that are grouped together using IfcRelAggregates. The interesting bit is that additional information like classifications and properties are sometimes attached to either the parent object and/or the child objects, but not to all objects.

Here's a very simple example that I've come across:

#855=IFCPROPERTYSINGLEVALUE('IsExternal',$,IFCBOOLEAN(.F.),$);
#906=IFCCLASSIFICATION('','',#907,'NL-SfB');
#10973=IFCSTAIR('2si94wiMrCAuS_9Pq9rdoz',#18,'...',$,'...',#10972,#10970,'1419800',.NOTDEFINED.);
#10975=IFCSTAIR('2si94wiMrCAuS_9Py9rdoz',#18,'...',$,'...',#10969,$,'1419800',.NOTDEFINED.);
#10978=IFCPROPERTYSET('3swCMp1Gk9Zh9NUgoXKNpF',#18,'Pset_StairCommon',$,(#855));
#10980=IFCRELDEFINESBYPROPERTIES('3RFAwAR9R5vYvmV2Pu0pWp',#18,$,$,(#10975),#10978);
#10981=IFCCLASSIFICATIONREFERENCE($,'24.11','trappen en hellingen; trappen, rechte steektrappen',#906);
#12658=IFCRELAGGREGATES('1UCE5pz$VbC3PS8kyXQJHb',#18,$,$,#10975,(#10973));
#12906=IFCRELASSOCIATESCLASSIFICATION('1$$2VP59RXtLKLCujYOKU7',#18,'...','...',(#10975),#10981);

Image

As you can see in this example, the parent IfcStair (#10975) object has both a property and a classification, but the child IfcStair (#10973) has neither. I'm not sure if this is an issue with how these objects are created or generated in Revit, or if it has to do with the IFC export process, but I've been told similar things also happen with roofs and ramps. I've seen this kind of output from multiple different customers.

Although not explicitly stated, I suppose one could interpret that the child IfcStair object should also be considered to have the IsExternal=F property, and the 24.11 classification (because it's parent has these explicitly defined), but there's nothing in the IFC or IDS documentation or test cases that support that idea. However, the IDS test cases do tell us to look at properties and classifications of related IfcTypeObjects when looking up the properties or classifications of an object. So perhaps this idea of looking at related objects (like we do for types) isn't really that farfetched?

I have tried using the partOf facet, but unfortunately that doesn't quite cover the use case, since that only allows me to check if an entity is part of a group, and not if the other entity in that group has a specific property or classification, and if so, which one.

I'm wondering if others have any thoughts on this issue? Perhaps others have come across into this issue themselves as well?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions