Closed liordino closed 5 years ago
HI @liordino ,
Did you manage to get these infos from the IFC? I'm having some trouble with the same problem here.
Thanks, Bruno.
Hi @BrunoMBuzzi !
I've found some of these infos, but none of them by using the IFC structure. Instead I performed calculations over the generated geometry, sometimes projecting them to create a 2D representations.
Hope it helps!
Thanks for your reply @liordino ,
I did find out how to calculate some properties, but only on simple structures, like walls with no voids. Did you create some sort of calculation to get these infos on more complex shapes too? I mean, your calculations are generic for any kind of shape?
Thanks again, Bruno.
Hey @BrunoMBuzzi !
Unfortunately I can't tell you much details because I'm under a NDA agreement, but I can say that it all depends on what kinds of objects you're dealing with and what properties exactly you wanna calculate. Most calculations, like surface area or volume will work well for any object, provided that they respect some constraints (like beeing watertight and don't have overlapping geometries, for instance). Other ones, like projected area, may need some more work (like projecting the object along some axis and identifying and removing holes).
Hope it helps.
You will need to use the geometry engine to create IXbimGeometryObjects. You can use Ifc for simple extrusions but when you get into advanced Breps these are too simplistic. Once you have created your solids, faces or edges you will have to project them onto relevant planes. The section method of solids and shells will give a clue to you, but you will probably need to implement in the c++ layer. I will add support for Projection to the next release
Hi Steve, Was support for Projected added? It would help me a lot. Thanks! Boyko
Hi,
I'm trying to find a way to calculate properties like surface area, area, volume, width, height and etc of IFC objects based on their geometry. I managed to calculate surface area and volume for objects made of single meshes, but couldn't find a way to do this for the ones made of more than one mesh. Going on, I found out that it was possible to do CSG operations on several meshes to get a single mesh as a result, and only them calculate wherever property that I'm interested. After this, studying Xbim.Geometry code I found the IXbimShell and IXbimMesh interfaces, both having an Union method, which I think that is what I need to do to find the properties that I'm interested in.
My question is: am I on the right track? If so, there is an implementation of these methods anywhere on on the Xbim toolkit? And if not, is there any documented way to calculate these kind of property already implemented on the Xbim toolkit, or any direction that I could take to develop them?
Thanks!