I have an IFC file representing a Stormwater network, and it has IFCFLOWSTORAGEDEVICE features representing nodes and IFCBUILDINGELEMENTPROXY features representing pipes.
I have been able to pull out all the IFCPROPERTYSINGLEVALUE attributes for the node features thanks to daveatsafe's excellent answer here.
However the pipes are a little more challenging as there seems to be some sort of aggregate standing in between the geometry and the attributes, and I can't expose the attributes in the same way. In the IFC file they are represented like this:
Â
IFCBUILDINGELEMENTPROXY('1HDtbP71IFCELEMENTASSEMBLY('3xaXAEmy159vL
IFCRELAGGREGATES('2U9sLih9H1YhOYO
IFCPROPERTYSINGLEVALUE('calculate
IFCPROPERTYSINGLEVALUE('calculate
whereas for the nodes it was just straight in to the attributes:
IFCFLOWSTORAGEDEVICE('1NHbOsZU
IFCPROPERTYSINGLEVALUE('pit id
IFCPROPERTYSINGLEVALUE('pit na
IFCPROPERTYSINGLEVALUE('pit ty
The IFC file was created with 12D software, and to be honest there seems to be no practical reason for the aggregate (maybe just an artefact of a more generic design)
When using the Revit reader with the Building Elements with Hierarchy option I get an IFCBUILDINGELEMENTPROXY geometry without the attributes, and I also get an IFCELEMENTASSEMBLY feature come through with a geometry of FMENull which has GeometryTraits equating to the attributes. But these are currently ignored in the Revit Reader (I'm using 2018.1), and even if they did came out as features it is not very obvious how I would stitch them back on to the original geometry.
Is there a (relatively) straightforward way of picking up the attributes of these aggregate features?
Â
For full disclosure, I have actually ended up hacking the IFC file to remove all the IFCELEMENTASSEMBLY and IFCRELAGGREGATES rows, which then necessitated adjusting a bunch of IDs in a couple of other places. Luckily I was only dealing with 40 pipes, so was fairly manageable. This hack actually works perfectly, but I would not like to repeat on a bigger file.
Thanks
Keith
Â