Closed Kuraperunat closed 6 years ago
Hi Kuraperunat,
xBIM framework is stable in its core. The main project (xBIM Essentials) is stable and implements 100% of IFC2x3, IFC4Add2 and IFC4x1 (IfcAlignment). This uses proven concepts and is very stable. Because of that you only see relatively minor bug fixes in this area.
Heavy use of Linq you refer to is based in IFC definitions (inverse attributes) which use this feature to make the schema more easy to navigate. Knowledge of IFC is certainly vital for xBIM developers. Based on this knowledge custom caching might speed the applications up depending on the specific scenario. Some level of global caching is also available in IModel.BeginCaching(). This should be used in using () {}
statement and can’t be combined with the transaction (hence you can’t be using cache for inverse queries if you are modifying the model).
I wouldn’t say C++/CLI is deprecated but it is not supported for multiplatform development (.NET Core) and we understand this is an issue for the future. But it is not a problem as long as you are within full .NET framework environment.
xBIM Geometry is a project which is currently maintained mostly by @cbenghi so it is better to ask him in the respective project. I’m not sure which bugs you rate as critical and which measures you apply for reliability of the geometry processing. This is always a complex task and we know we can process some models better than others and some worst than them. If you can provide some repeatable benchmarking it would be very interesting.
I think xBIM Toolkit is mature by now and we know that 100+ companies use it worldwide in business critical scenarios. Based on that, number of issues reported on GitHub doesn’t seem to be very high. So, there are many people who have been using it for a while now. Weather you decide to use it is obviously your choice.
We don’t have a plan to implement any new significant features in the close future.
Martin
From: Kuraperunat Sent: 01 October 2018 14:32 To: xBimTeam/XbimEssentials Cc: Subscribed Subject: [xBimTeam/XbimEssentials] Development progress of the Xbim framework(#210)
Hello, I'd like to ask what is the current state of Xbim development? It has been nearly a year since a public nuget package release, and the relatively few commits on the development branches don't seem to be focusing on introducing new features; just various bugfixes or tests. XbimGeometry project's geometry engine seems to be based on the practically deprecated C++/CLI and at least from my experience the codebase is kind of difficult to approach for open source contributors. The geometry engine also contains various kind of critical reported issues but it seems like they're not being actively worked on. The Xbim geometry engine is extremely fast for triangulating IFC models, but it's not as reliable as e.g. IfcOpenShell. Also from my experience the codebase seems to have heavy linq usage practices, leading to various performance issues stemming from iterating the entire model.instances for many operations. Some operations take extremely long on large IFC models and require manual caching or other user level optimizations to be usable. So I'd like to know if any new Xbim features are still being actively developed by it's core developers or has it become a side project? What are the next development plans for the project? Would you consider Xbim framework to be stable, complete, and updated enough to base other software on it? Sorry for the lengthy question. — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
Thank you for the detailed and through reply.
My biggest concerns are indeed mostly with the geometry engine which is seemingly difficult to approach for outside developers. I've been testing Xbim for various real world IFC models and for parsing the library does in general work quite nicely, but I've also encountered various geometry engine issues that are difficult to fix for outside developers.
In particular issues like xBimTeam/XbimGeometry#102, xBimTeam/XbimGeometry#96 and debugging various meshing errors is extremely difficult due to the library's size and other smaller details like working only in VS2013, C++/CLI etc. This makes me more dependent on library's developers and also interested in the project's development status.
Since the development branches seem to be much farther than the nuget packages (last geometry engine update 2016, essentials 2017) it would be nice to see the recent bugfixes get upstreamed there sometime.
I'm closing the issue as the question got answered. Thanks again.
You are welcome. We are going to merge develop
into master
once @CBenghi is ready to push his latest changes in Geometry Engine.
We also have MyGet feeds which you can use to reference the latest versions of both Essentials and Geometry Engine.
As you will see we are preparing a major release and the geometry engine has many enhancements and fixes., As you point out the geometry engine is complex but it is a complex problem and has to absorb an awful lot of variances in different BIM vendors interpretation of the geometry standards. Recently we took on Ifc4 geometries, few other engines deal with these. We have noted that over the last two years Ifc Exporters have become far more consistent in their treatment f the geometry schema. Geometry in Xbim has a wider scope than IfcOpenShell (Ifc4 geometries at the time of commenting) and has been designed to show errors and inconsistencies rather than pass over them as many other viewers do. So it may feel a bit odd but rest assured our goal is to make it very strict and robust in its implementation of the standards.
Hello,
I'd like to ask what is the current state of Xbim development?
It has been nearly a year since a public nuget package release, and the relatively few commits on the development branches don't seem to be focusing on introducing new features; just various bugfixes or tests.
XbimGeometry project's geometry engine seems to be based on the practically deprecated C++/CLI and at least from my experience the codebase is kind of difficult to approach for open source contributors. The geometry engine also contains various kind of critical reported issues but it seems like they're not being actively worked on. The Xbim geometry engine is extremely fast for triangulating IFC models, but it's not as reliable as e.g. IfcOpenShell.
Also from my experience the codebase seems to have heavy linq usage practices, leading to various performance issues stemming from iterating the entire model.instances for many operations. Some operations take extremely long on large IFC models and require manual caching or other user level optimizations to be usable.
So I'd like to know if any new Xbim features are still being actively developed by it's core developers or has it become a side project? What are the next development plans for the project? Would you consider Xbim framework to be stable, complete, and updated enough to base other software on it?
Sorry for the lengthy question.