fix: bug in initialization of gltf serialiser fixed

This commit is contained in:
Jonas Frei
2025-02-20 23:45:32 +01:00
committed by Thomas Krijnen
parent c549dea943
commit d38f56e82d
@@ -306,9 +306,12 @@ In addition to geometry settings, serialisation has its own set of
.. code-block:: python .. code-block:: python
import multiprocessing
import ifcopenshell import ifcopenshell
import ifcopenshell.geom import ifcopenshell.geom
import multiprocessing
ifc_file = ifcopenshell.open("model.ifc")
settings = ifcopenshell.geom.settings() settings = ifcopenshell.geom.settings()
@@ -322,20 +325,21 @@ In addition to geometry settings, serialisation has its own set of
# settings.set("apply-default-materials", True) # settings.set("apply-default-materials", True)
# settings.set("use-world-coords", True) # settings.set("use-world-coords", True)
# Serialise to glTF / glb serialiser_settings = ifcopenshell.geom.serializer_settings()
serialiser = ifcopenshell.geom.serializers.gltf("output.glb", settings)
self.serialiser_settings = ifcopenshell.geom.serializer_settings()
# Setting element GUIDs is optional, but useful to uniquely identify objects in non-semantic formats. # Setting element GUIDs is optional, but useful to uniquely identify objects in non-semantic formats.
serialiser_settings.set("use-element-guids", True) serialiser_settings.set("use-element-guids", True)
# Serialise to glTF / glb
serialiser = ifcopenshell.geom.serializers.gltf("output.glb", settings, serialiser_settings)
# Serialise to obj # Serialise to obj
# serialiser = ifcopenshell.geom.serializers.obj('output.obj', 'output.mtl', settings, serialiser_settings) # serialiser = ifcopenshell.geom.serializers.obj('output.obj', 'output.mtl', settings, serialiser_settings)
serialiser.setFile(self.file) serialiser.setFile(ifc_file)
serialiser.setUnitNameAndMagnitude("METER", 1.0) serialiser.setUnitNameAndMagnitude("METER", 1.0)
serialiser.writeHeader() serialiser.writeHeader()
iterator = ifcopenshell.geom.iterator(settings, self.file, multiprocessing.cpu_count()) iterator = ifcopenshell.geom.iterator(settings, ifc_file, multiprocessing.cpu_count())
if iterator.initialize(): if iterator.initialize():
while True: while True:
serialiser.write(iterator.get()) serialiser.write(iterator.get())