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

Low level calls and geometry regeneration #560

Open
rubendel opened this Issue May 31, 2017 · 5 comments

Comments

3 participants
@rubendel
Member

rubendel commented May 31, 2017

When the low level calls are used to create a new revision, all geometry is generated again, and stored again (linked to the new revision). Two possible improvements here are:

  • Still generate all geometry again, but then compare the results (per IfcProduct) with the previous revision and only store the new geometry when it's different
  • If possible, try to determine what geometry could possibly have changed as a result of this transaction. This could potentially be hard to implements because it's not always trivial to determine the effects of certain changes (for example IfcCartesianPoint, IfcSIUnit).
@stestaub

This comment has been minimized.

stestaub commented May 31, 2017

May it would be good to have an option to disable automatic geometry regeneration. For example if you only update properties or similar elements that have no effect on the geometries. Or does BimServer already realize if a property does not affect geometries?

Besides, does every single lowlevel call cause a new revision or can it be wrapped in a transaction?

@rubendel

This comment has been minimized.

Member

rubendel commented May 31, 2017

Those can (and have to) be wrapped in a transaction. I am refactoring them at the moment, but the plan is to have unit tests for all of them and better documentation as well, it's a feature that is almost never used, but I still think can have great potential.

I don't particularly like the idea that the client-side developer becomes responsible for determining whether regenerating the geometry is necessary. For certain updates such as changing properties (within properysets) BIMserver should be able to quickly establish that no regeneration of geometry is necessary.

@stestaub

This comment has been minimized.

stestaub commented May 31, 2017

Hmm, I agree, especially when you do multiple updates to different elements...

Maybe it would help to have a list of elements/attributes that should not affect geometries. We don't require this functionallity, but propably soon will.

@rubendel

This comment has been minimized.

Member

rubendel commented May 31, 2017

Yeah that could be a quick fix for (probably) most situations

@nelsonmunoz

This comment has been minimized.

nelsonmunoz commented May 31, 2017

In regards to issue #557 i've gone back to version 1.4.0 and there geometry regeneration is not breaking uppon new revision from lowlevelinterface. I would like to second @rubendel 's view on lowlevel call's potential. Am currently working on an application that focuses exclusively on updating propertyset properties. These do not require geometry regeneration at all.

@rubendel rubendel added this to the Next major release milestone Oct 29, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment