xBimTeam / XbimEssentials

A .NET library to work with data in the IFC format. This is the core component of the Xbim Toolkit
https://xbimteam.github.io/
Other
485 stars 172 forks source link

using the XBIM Essentials to read and highlight the difference between two IFC files #513

Open Abdallah-BIM opened 1 year ago

Abdallah-BIM commented 1 year ago

Hello everyone,

We have 2 IFC files with minor changes with time, the first model is built in 2020 but after a while, we have a core test in a wall for monitoring in the second model for example in 2023.

what I am trying to do is make a comparison between the 2 IFC files and highlight the element that has the modification in the model and also highlight the modification date.

Assemblies and versions affected:

I created the 2 models in Revit and exported them as IFC2X3

Which assemblies/packages and their versions are known to be affected? E.g. Xbim.Essentials 4.0.29 I am using Xbim.Essentials 5.1.341

Steps (or code) to reproduce the issue:

1- we installed the package Xbim.Essentials 5.1.341 in my VS community 2022. 2- I knew already where are the changes as I used GIT to find the changes but I can not find the function that can highlight these changes in a code line, not only as GUI

Minimal file to reproduce the issue:

IFC files need to be zipped to be uploaded. Then just drag & drop here Projecttry.zip

Expected behavior:

What would you expect to happen I am expecting to have 2 files uploaded and when I press start a window with the 2 files popup showing the 2 models again and highlighting the changes in the wall or at least the wall that have the changes

more details:

you can find the idea explained in here as ppt Versioning concept.pptx

martin1cerny commented 1 year ago

There are many kinds of changes - attributes, properties, aggregations, assignments, geometry, placement, orientation etc. Which changes do you want to check? Are you planning to implement the visualization as part of the XPlorer application?

Abdallah-BIM commented 1 year ago

Thanks, Martin for your reply, I want to track any kind of change and visualize the element that changed in two separate IFC viewers. and yes I am planning to visualize it in Xplorer.

andyward commented 1 year ago

There's a pretty old proof of concept of the ability to compare across versions at https://github.com/xBimTeam/XbimAnalysis/tree/develop/Xbim.Analysis

Fundamentally you need a number of different strategies to identify what could be the same element (IfcWall instance etc), before you begin to look at what has actually changed. The Xbim.Analysis uses Guid, name, and Geometry (spatial placement) as comparitor key.

It's on xbim4, so you'd need to update it to v5.1 (or v6) xbim Essentials.

We have the ability to do this kind of continuity testing in our commercial xbim Flex platform which works at a slightly higher level.