Replies: 8 comments 14 replies
-
Definitely. It also shouldn't be hugely complex to get it working. The approach is still mostly the same :) let me know how it goes and where I can help out! |
Beta Was this translation helpful? Give feedback.
-
I am seeing progress on the conda daily builds! I have successfully gotten to the compilation stage for all 3 platforms now actions. Is my understanding of the taxonomy correct in assuming it is a "neutral" geometry description based on the different geometries in the IFC standard (ie. taxonomy acts as some kind of geometry-adapter between the IFC standard and the tessellation libs). Would it be possible to instantiate the taxonomy objects directly from c++ and batch-tessallate a list of geometries without instantiating any IFC objects? I see a lot of use-cases where I just want to visualize (ie. tessellate) a bunch of geometries really fast and was thinking I could try to solve this in c++ and hopefully by using the taxonomy geometry lib you have created |
Beta Was this translation helpful? Give feedback.
-
Okay, the compilation is almost at 100%. It seems there is an issue with ifc-to-cityjson referencing unrecognized CGAL module "parameters" (https://github.com/IfcOpenShell/ifc-to-cityjson/blob/master/radius_execution_context.cpp#L945). CGAL has changed the names since this was written. It is a easy fix though This was okay in CGAL 4.14.3 but not in CGAL 5.5.2 CGAL::Polygon_mesh_processing::parameters This is fine in CGAL 5.5.2 CGAL::parameters For now I will try to solve this by adding a CITYJSON_SUPPORT option and setting it by default to OFF. |
Beta Was this translation helpful? Give feedback.
-
Hm, looks like linking IfcConvert fails on all platforms with CGAL 5.5.2. See failed steps for linux and windows respectively. https://github.com/Krande/IfcOpenShell/actions/runs/5472847975/jobs/9965532381#step:6:23674 From windows
Any suggestions? :) |
Beta Was this translation helpful? Give feedback.
-
Minor update! Linux and Windows builds are now passing. It seems osx is segfaulting when trying to import the python package link. FYI: Just out of curiosity I've started experimenting with a minimal python wrapper with the intent of wrapping the taxonomy and tessellation capabilities only here. |
Beta Was this translation helpful? Give feedback.
-
It's likely because this is missing: https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/conda/build.sh#L9-L13 Which again triggers some behaviour in CMake: https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/src/ifcwrap/CMakeLists.txt#L57-L59 Causing not to link to python at compile time, but rather inherit the symbols at runtime so that some shared state is properly taken into account.
That's awesome! What's your experience so far of using nanobind? |
Beta Was this translation helpful? Give feedback.
-
Hi @Krande I just pushed some major changes to the taxonomy. See commit message 65a5646 It may be a bit disruptive, but at the same time it will facilitate actual usage of this taxonomy with proper memory management (shared ownership so more efficient, integration with python ref counting) and some work towards hashing (so storing these as dict keys as sets). pybind/nanobind shouldn't have any issues wrapping std::shared_ptr, but let me know if you run into difficulties. |
Beta Was this translation helpful? Give feedback.
-
Hey @aothms, did 65a5646 break something in the regular tests (error)? |
Beta Was this translation helpful? Give feedback.
-
Hey @aothms!
The performance improvements in your twitter post regarding using CGAL for tessellating geometry in IfcOpenShell are quite impressive and I am eager to test it out for myself :)
For those who did not see it, here is a figure from the post (hope it's okay I share it here as well?) comparing performance between OPENCASCADE and CGAL:
Is the v0.8.0 branch in such a state that we can start to build a daily conda package for testing you think?
Beta Was this translation helpful? Give feedback.
All reactions