voxelization_toolkit
voxelization_toolkit copied to clipboard
conda builds incompatible <-> ifcopenshell on channel ifcopenshell
Thanks for the amazing tool!
attempts on both win64 and ubuntu 20.04 to call voxec after doing
conda install -c conda-forge ifcopenshell
conda install -c ifcopenshell voxelization_toolkit
fail with
voxec: symbol lookup error: voxec: undefined symbol: _ZNK16Standard_Failure14GetStackStringEv
(linux)
or
the procedure entry point could not be locate in the dynamic link library [pathto]bin\voxec.exe
(win64)
I tried to use older 3.9 3.10 versions of ifcopenshell from around the time of the last voxelization_toolkit builds in the ifcopenshell conda and conda-forge channels into fresh conda envs etc. to no avail.
Attempts to build on VS2019 and ubuntu give me (more) gray hair but no results:
- current dead end on win after massaging Paths according to CMakeList.txt comments : running into issues with
boost_1_76_0\boost\regex\v5\w32_regex_traits.hpp
not being able to find / include::GetUserDefaultLCID()
from winnls.h into the global namespace ...
I managed to build libvoxel.lib
however, maybe I can play around with that a bit...
If somebody finds the time to update conda or has a some hints for a successful build I'd be really , really thankful.
Thanks a lot for this really cool project! Include citation reference from LDAC 21?
You were on the right track, but the dependency that needed to be downgraded was occt, which may or may not correspond to which ifcopenshell version it selects. In the end I got it up and running with the following versions:
ifcopenshell=v0.7.0a4-py310hf7dc881_1
occt=7.5.3-h8294837_4
I/We I think are still not fully understanding how to encode dependencies in yaml. For building IfcOpenShell is compatible with all occt versions (also the 7.7 that was recently introduced). But once IfcOpenShell has been built against a specific version then you can't arbitrarily switch versions. And I think this is what has happened since 7.7 was recently pushed to conda-forge.
running into issues with boost_1_76_0\boost\regex\v5\w32_regex_traits.hpp not being able to find / include ::GetUserDefaultLCID() from winnls.h into the global namespace ...
These boost regex failures have been plaguing us for some time. We have a similar issue causing the CI/CD build here in the voxel repo to break.
I see you're using boost v1.76, upgrading to 1.78 might help there because we have a specific check for that https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/src/ifcgeom_schema_agnostic/IfcGeomFilter.h#L27
Brilliant! Thanks a lot for taking the time to look into this! Works with Duplex_A and the voxelfile described in the README.md!
Got it running in an anaconda3 shell on windows 11 (see complete specs below) doing:
conda create --name vox2
conda activate vox2
conda install -c conda-forge ifcopenshell=v0.7.0a4=py310hf7dc881_1
conda install -c conda-forge occt=7.5.3=h8294837_4
conda install -c ifcopenshell voxelization_toolkit
This is my environment if s.b. looks
conda info
active environment : vox2
active env location : [PATH]\anaconda3\envs\vox2
shell level : 2
user config file :[PATH]\.condarc
populated config files : [PATH]\.condarc
conda version : 4.12.0
conda-build version : 3.21.8
python version : 3.9.12.final.0
virtual packages : __cuda=12.0=0
__win=0=0
__archspec=1=x86_64
base environment : [PATH]\anaconda3 (writable)
conda av data dir : C[PATH]\anaconda3\etc\conda
conda av metadata url : None
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
envs directories : [PATH]\anaconda3\envs
[PATH]\.conda\envs
[PATH]\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.12.0 requests/2.27.1 CPython/3.9.12 Windows/10 Windows/10.0.22000
administrator : False
netrc file : None
offline mode : False
Also made progress in building everything using the boost 1.74.0 from [IfcOpenShellSrc]/_deps
and _deps-vs2019-Win32-installed
but running into linker issues that that probably stem from using vs2019 trying to use vs2017 occt .libs .... well keep posting.
Now, onward to understaning the toolkits DSL ;-)
Another attempt at IFC->gbXML interesting building on Marten Visschers https://github.com/MGVisschers/IFC-to-gbXML-converter ? Or is this done somewhere already?
When a model doesn't have 2nd level space boundaries, indeed voxelizing the spaces over a coarse grid can give you a reasonable approximation of it as we show in https://repository.tudelft.nl/islandora/object/uuid%3A98ad4f7e-105d-4511-baa8-57a088eb7c51
The real reason we built this was more for geometric analyses that require analysing the complete set of geometries but don't need full accuracy. The first real use case for this was detecting missing railings.