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);

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?
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:
As you can see in this example, the parent
IfcStair (#10975)object has both a property and a classification, but the childIfcStair (#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
IfcStairobject should also be considered to have theIsExternal=Fproperty, and the24.11classification (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 relatedIfcTypeObjectswhen 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
partOffacet, 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?