Skip to content
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

Merge multiple versions of an IFC file. #449

Open
theoryshaw opened this issue Dec 31, 2016 · 9 comments
Open

Merge multiple versions of an IFC file. #449

theoryshaw opened this issue Dec 31, 2016 · 9 comments
Labels

Comments

@theoryshaw
Copy link
Contributor

How involved would it be to modify the merge plugin to...

  • remove duplicate GUIDs
  • monitor objects that have been deleted (that is, not reintroduce them again on future merges downstream)

Essentially looking for a solution that merges multiple versions of an IFC file over time.

@rubendel
Copy link
Member

rubendel commented Jan 3, 2017

Determining duplicate GUID's is not that hard, but what would you replace them with? And how would you do that consistently for the same (logical) objects?

There would have to be some extra storage reserved I think (outside of the IFC schema) to indicate objects that have been deleted. The current merge-plugin interface does not support this at the moment.

@theoryshaw
Copy link
Contributor Author

Hi Ruben,

In a nutshell, I'm looking for a git equivalent for IFC files.

Which I know is a tall order at the moment. So looking for a MVP in that direction.

but what would you replace them with?

At this point, to keep it simple, I was thinking the most recent GUID could just override the previously submitted GUID. We would worry about merge control later.

@theoryshaw
Copy link
Contributor Author

Just to give you some background...

@yorikvanhavre and I are working on a very simple, barebones rountripping workflow between FreeCad and Revit: https://github.com/OpeningDesign/FreeMVD_WorkFlow/blob/master/BIM%20Specifications.md'

Involves only simple extrusions and IfcBuildingElementProxy elements.

We're using this roundtrip workflow to create large scale details:
OpeningDesign/Sports_Complex#18

...and using a Dynamo script developed by @dimven to automate the annotation of these details.

So far, the roundtripping has worked pretty well. Would be nice to incrementally add more intelligence to the workflow over time--to potentially recreate Revit profile families and groups.

In this regard, It would be great to find/develop a solution that would allow us to merge the versions of this one IFC file, over time--as I mentioned, almost like a git solution for IFC files.

@I-Sokolov
Copy link

Are you speaking a situation when the same GUID is used in two IFC files but not when one IFC file has two objects with the same GUID?
If so, it makes the task more clear and correct to my understanding.
The newer IFC file has a newer data for object that should update/replace older versions, is it?
Merged file should take an object from newer file with all follow-up properties and relations?

@theoryshaw
Copy link
Contributor Author

Are you speaking a situation when the same GUID is used in two IFC files but not when one IFC file has two objects with the same GUID?

two files (or multiple throughout duration of project) with the same GUID

The newer IFC file has a newer data for object that should update/replace older versions, is it?

Yes.

Merged file should take an object from newer file with all follow-up properties and relations?

Correct. It would be nice to have merge control here, but not crucial at this point.

@rubendel
Copy link
Member

rubendel commented Jan 5, 2017

If I understand correctly, this is a problem we have looked into a few years ago. My conclusion was (not everybody agreed) that it is too hard to reliably detect the changes between 2 versions of an IFC model.

GUIDs that stay the same between versions would definitely help a lot though. Maybe with some clever way of user-interaction you can come up with a working solution.

Another way of accomplishing this I think would be to record the changes in a model in the authoring tool itself, and send those to a BIMserver.

@berlotti
Copy link
Member

For the record... I was one of the people that didn't agree :-)

@Moult
Copy link

Moult commented Sep 9, 2019

GUIDs have to stay between versions, it is part of the requirements of the IFC spec.

Recording the changes can be done via IFC's owner history. Of course, the authoring tool would have to identify the changes, and then send a package of owner histories over to the BIM server so it can perform the merge.

Can we reopen this issue and re-evaluate?

@rubendel rubendel reopened this Sep 10, 2019
@I-Sokolov
Copy link

GUIDs have to stay between versions, it is part of the requirements of the IFC spec.
Unfortunately it is far from practice.
For most of vendors there are strong entities with stable GUIDs (usually building elements) and weak (psets, relations) that are fluent, assume generated on the fly.
A lot of vendors change GUIDs for project, building and storey.

@hlg hlg added the feature label May 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants