-
Notifications
You must be signed in to change notification settings - Fork 611
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 generator: Missing objects in model #1256
Comments
Have you configured the geometry engine to use a more recent IfcOpenShell version by updating the "commit sha" plugin setting, e.g. to 517b819, as described in issue #1207, for example: #1207 (comment)? |
In our case the object IfcSpace #14757 does not contain geometry when the file first declares the IfcRelAggregates, then the child object and the parent object.
After changing the order and changing expressId of IfcRelAggregates, the geometry was generated correctly
Why does this happen? |
@BeetleEda, interesting catch - geometry generation should definitely not behave like this. Can this be reproduced with a minimal sample? So just the two spaces with geometry and aggregation, maybe a project? Is this directly related to the original issue or a separate case? |
@hlg I can't reproduce this behavior with a minimal example. It looks like it's not just about order. I'll keep looking for the reason... |
It's the problem of BimServer. In some cases Representation property is not added to serialization array (addUseForSerialization method) and OpenShell engine doesn't get Representation data. The reason why it's not added is very sophisticated... There are many different StackFrames that are doing some indirect calls that lead to this situation. This is why the problem is not reproducible with minimal example...
Can you maybe shed some light to the principle of how these StackFrames are working? |
After having a hard time trying to debug this I managed to find out the reason for such a strange behaviour. The problem is hidden in drawbacks of how BimServer traverses object graph. Let me explain it using an example. Let's say I have two IfcSpaces where one space aggregates another through "decomposes" attribute. BimServer utilizes depth-first traversing which leads to the following steps:
Any comments how to deal with this? |
Thanks for the profound investigating - I will have a look, what can be done about it. At first, I thought it might be related to #1081, but you might as well have discovered something different. If that is the case, the fix would be to look for the actual (concrete) type instead of the declared type when choosing references (structural features) for processing and retrieval of related objects. Regarding your first question about stack frames - they form the parts of a call stack. When executing a program with nested function calls - in this case a query with nested query parts - each call happens in a local environment, with local variables, intermediate state etc. Before execution of a nested function call or processing of a nested query part, the local state of the current execution is stored in a so-called "frame" and saved on top of a stack (last-in-first-out queue). Once the nested function or query part is processed, execution returns to the calling function or enclosing query part, pops the top frame from the stack, restores the previous environment and proceeds with processing the outer function or query. |
I can follow your description and worked through |
* Changing BIMserver 1.5.183-SNAPSHOT to 1.5.183-BRU-SNAPSHOT * Making model transient for serialization of IdEdObjects * Added few utility functions * Updates in RichModel * New version * Fixes * Logging * Comparison bug fixes * Bugfixes * Bugfixes * Bimserver bug fixes * Boolean/Tristate bug fix * Tristate Boolean/String bugfix * Rough hack opensourceBIM#1256 * Fixed some bugs related to merging * Fixed some bugs related to merging * Fixed some bugs related to merging * offline geometry generator * Geometry small fix * https://app.asana.com/0/1200852714700592/1203063871445778/f * https://app.asana.com/0/1200852714700592/1203029394700331 * Bytes multiplier fix * https://app.asana.com/0/inbox/1202159521683876 * merging updates * https://app.asana.com/0/1200852714700592/1203259800939093 * find duplicates of rels * Temp version * Update merger * find duplicates of rels * Update merger * find duplicates of rels * Update merger * addLongAttribute to LowLevelInterface * add local BB * https://app.asana.com/0/1200852714700592/1203099333116440 * Feature/debug log add * Hotfix/logger fix * generate ifc4x3 models * fixed compile * added missing pieces to support ifc4x3 * removed extra spaces * Доработка конвертера для оптимизации генерации офлайн геометрии (выгрузки минимальной модели) * added mismatches * generate database ifc4x3-geometry queries * fixed errors which happens on start bimserver * Feature/add physically delete * Fix/extract hard delete * fixed Content-Disposition header * removed log of query on download action * removed log of query on download action * worked version * added geometry to ifc4x3.IfcProduct * changed schema name to IFC4X3_ADD1 * changed Schema name to IFC4X3 * added brusnika repository * bump up buildingsmartlibrary version * Fixes/http client cookie * update logback.xml * Revert "Fix/extract hard delete" This reverts commit ae348b1. * Revert "Feature/add physically delete" This reverts commit b369694. * removed extra repo * removed settings --------- Co-authored-by: BRUSNIKA\d.kurillo <[email protected]> Co-authored-by: d.evdokimova <[email protected]> Co-authored-by: Павел Кожанов <[email protected]> Co-authored-by: Константин Безгодов <[email protected]> Co-authored-by: Константин Безгодов <[email protected]>
I have the same problem as described here #815 though use the latest version of BIMServer. Any ideas where to dig?
The text was updated successfully, but these errors were encountered: