-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Geometry Store is empty on latest XbimEssentials 6.0.443-develop #549
Comments
Just tested it in the latest v6 and some older versions and can reproduce the issue. Nothing in the logs and it validates fine. At a guess it's an unusual combination of RepresentationContexts that we're not supporting. i.e. it's probably an issue in the scene which should be fairly easy to debug, starting at https://github.com/xBimTeam/XbimGeometry/blob/58da50c6749fd59f5a895b3a284141a117aa0678/Xbim.ModelGeometry.Scene/Xbim3DModelContext.cs#L685 |
Hello @andyward As suggested, I am debugging the
There are two IIfcRepresentationContext that I can see, while debugging. Are these context not supported ? Also why isGeometryV6 is false on netcore branch, since it is version 6 it should be true, right ? |
Hello @andyward And yes your guess is right. For example in here, But _contexts (all context from model) does not include this IfcRepresentationContext ("Plan"). It has only one RepresentationContext that is Model. Now I know the issues, I am thinking on solution to fix this behavior and contribute. Thank you !! |
Hello @andyward
Which might interest you as well. So on high level, While creating the Xbim3DModelContext we fill the map of IfcGeometricRepresentationContext and IfcGeometricRepresentationSubContext that are present in the file. I am interested knowing why Plan is not considered ? are there any limitations ? challenges ? or any other reason ? As a fix, So that IfcProduct's with IfcGeometricRepresentationContext as a Plan are being considered for geometry processing. I have added Pull Request for the same fix - PR Link. @andyward I will really appreciate your or any team members thoughts and knowledge sharing on this topic and question. Thank you !! |
Always worth checking the standards and any implementor agreements: e.g. See IfcGeometricRepresentationContext Technically a ContextType of 'plan' is reserved for 2D annotations - which aren't really supported in the xbim Geometry Engine, hence why we don't pick them up in the scene. This 'plan' context would normally have a This is not my specialist area (@martin1cerny may be able to help). But rather than explicitly add in incorrect context type of 'plan', I might broaden the fallback logic to search for any IfcGeometricRepresentationContext which has 3 dimensions? ANother approach would be to look at the TargetView enum on any attached SubContexts - We're only interested in MODEL_VIEW contexts |
GE6 contains two geometry engine versions. One is backward compatible with v5.1 (v5 version), while the v6 version is a fairly major overhaul of the way we interface with OpenCascade that also provides additional capabilities (such as accurate QTO from BREPs). You can switch between then for backward compatibility etc. The value of 'isGeometryV6' is set later here when we know the version. Note it defaults to v5 currently. |
@CCT-Mukund-Thakare this is great by the way! Thanks for sharing this. There's a lot that goes on behind those 2 lines of code! |
@andyward please confirm on my below understanding, And, The model that I have is not valid as per standards because all the 3D geometry representations are linked with the 'plan' context type. Thank you !! |
Yes, the model is technically invalid - and I think the logs from xbim will report as much. However it should be possible to fall back to a default context that does display something, rather than silently failing to produce a scene. I think that's what this bit of code is supposed to be doing: i.e. After we've tried the 2x3 conventions, we check for ifc2x2 conventions (which I think is what you changed in your PR), before finally saying we'll look at any RepresenatationContext in the model. With your example model, at the end of the |
Hello Team,
I have couple of IFC files for which models GeometryStore is empty.
When I open model in xbim viewer, we are not able to see anything.
This is the log from xbim explorer -
But whenever I open the IFC model in other viewers I am able to see the objects\geometry.
OCCT's CAD Assistant -
BIM Vision -
Assemblies and versions affected:
I have test this particular file on latest development release of essentials as well.
Xbim.Essentials 6.0.443-develop.
The issue is there in this latest and all previous versions.
Steps (or code) to reproduce the issue:
Minimal file to reproduce the issue:
E-BVT-RWB-Geelen-Beton 10 10e verdieping.zip
Expected behavior:
Geometry should not be empty and we should be able to see the objects like we are able to see in any other viewer.
What actually is happening
since model.GeometryStore.IsEmpty is true it is throwing an exception.
Additional Details
I have setup of latest xbim geometry version 6 as well with netcore branch.
The bug is there with the latest version6 on netcore branch.
I am still debugging the root cause for the same.
The text was updated successfully, but these errors were encountered: