xBimTeam / XbimGeometry

XbimGeometry contains the CLR interop libraries and the c++ engine used to compute the 3D geometry of models.
https://xbimteam.github.io/
Other
260 stars 132 forks source link

Wired geometry with openings and non WCS-correction #319

Closed Tpullmann closed 3 years ago

Tpullmann commented 3 years ago

We got a strange model from a customer which renders broken in our platform after conversion to wexbim. The model contains many correct elements, but some are broken (always with openings). And the model is in millimeters (oneMeter = 1000).

After some investigation we found out that in case we use "geomContext.CreateContext(null, false)", the model is broken, whereas in case of "geomContext.CreateContext(null, true) everything works fine.

Unfortunately we need the "adjustWCS=false" since we intentionally correct the WCS by an own algorithm (sometimes planners provide models with displaced elements regarding to their cordinate system, so the standard way of xbim is not sufficient). Short summary describing the issue. (3-5 sentences)

Export_Filtered.zip view_adjustWCS_false view_adjustWCS_true

Assemblies and versions affected: XBim.Geometry 5.1.403 XBim.Essentials 5.1.323

Tpullmann commented 3 years ago

Ok, I found out what seems to be the matter here... The model data is relative to a WCS which is shifted and rotated. The openings are not relative to this WCS, so in case you don't adjust the WCS, openings and walls are in a wrong angle towards each other. My own WCS Shift used translation, but not rotation, so the adjustWCS provided by XBim seems to be correct.