xBimTeam / XbimEssentials

A .NET library to work with data in the IFC format. This is the core component of the Xbim Toolkit
https://xbimteam.github.io/
Other
494 stars 173 forks source link

XbimPlacementTree - support for IfcLinearPlacement + IfcGridPlacement #585

Open vulevukusej opened 4 days ago

vulevukusej commented 4 days ago

Short summary describing the issue. (3-5 sentences)

Creating an instance of XbimPlacementTree results in a key not found error. Specifically on line 80 in XbimPlacementTree.cs, if the localPlacement.PlacementRelTo is not an instance of IfcLocalPlacement (in my case IfcLinearPlacement) the exception is thrown.

image

Which assemblies/packages and their versions are known to be affected. E.g. Xbim.Essentials 4.0.29

image

Minimal file to reproduce the issue:

This repo includes an IFC4x3 file (Viadotto Acerno.ifc) : https://github.com/buildingSMART/IFC4.x-IF/blob/main/IFC-files/ACCA/Bridge-for-MINnD/Viadotto%20Acerno.zip

*Optional, details of the root cause if known. I was able to get around this issue by modifying the class to parse IfcObjectPlacement instead, and hacking together two extra constructors for XbimPlacementNode that take an IIfcLinearPlacement and an IIfcGridPlacement.

I'm aware this is probably less a bug than it is an item still left as a TODO (https://github.com/orgs/xBimTeam/projects/2) but I thought it was important nonetheless to report the issue. Thanks in advance!

andyward commented 4 days ago

Thanks @vulevukusej

We're on the case with IFC4x3 Geometry & placement right now. Will add to @Ibrahim5aad 's queue when he gets through to placement.

Ibrahim5aad commented 4 days ago

Thank you, @vulevukusej. As Andy said we have an ongoing development to tackle these new IFC4x3 geometries and concepts. I'll ping you when we have something working.