From 8be79f9aeee3174b0c80e5fdd4c883c503c87932 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 26 Feb 2022 14:52:58 +0100 Subject: [PATCH] Add XML and glTF serializers to python --- src/ifcopenshell-python/ifcopenshell/geom/main.py | 11 +++++++++-- src/ifcwrap/IfcGeomWrapper.i | 2 ++ src/ifcwrap/IfcPython.i | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/geom/main.py b/src/ifcopenshell-python/ifcopenshell/geom/main.py index 970fb37fdd..ee125ef9ce 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/main.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/main.py @@ -266,13 +266,20 @@ def wrap_buffer_creation(fn): return inner +# Hdf- Xml- and glTF- serializers don't support writing to a buffer, only to filename +# so no wrap_buffer_creation() for these serializers serializer_dict = {} serializer_dict["obj"] = wrap_buffer_creation(ifcopenshell_wrapper.WaveFrontOBJSerializer) serializer_dict["svg"] = wrap_buffer_creation(ifcopenshell_wrapper.SvgSerializer) +serializer_dict["xml"] = ifcopenshell_wrapper.XmlSerializer serializer_dict["buffer"] = ifcopenshell_wrapper.buffer + +# gltf and hdf5 availability depend on IfcOpenShell configuration settings +try: + serializer_dict["gltf"] = ifcopenshell_wrapper.GltfSerializer +except: pass + try: - # HdfSerializer doesn't support writing to a buffer (obviously) only to filename - # so no wrap_buffer_creation() serializer_dict["hdf5"] = ifcopenshell_wrapper.HdfSerializer except: pass diff --git a/src/ifcwrap/IfcGeomWrapper.i b/src/ifcwrap/IfcGeomWrapper.i index 20aad125c4..1957b038e1 100644 --- a/src/ifcwrap/IfcGeomWrapper.i +++ b/src/ifcwrap/IfcGeomWrapper.i @@ -69,6 +69,8 @@ %include "../serializers/SvgSerializer.h" %include "../serializers/HdfSerializer.h" %include "../serializers/WavefrontObjSerializer.h" +%include "../serializers/XmlSerializer.h" +%include "../serializers/GltfSerializer.h" %template(ray_intersection_results) std::vector; diff --git a/src/ifcwrap/IfcPython.i b/src/ifcwrap/IfcPython.i index bcf097b153..1c16c4f487 100644 --- a/src/ifcwrap/IfcPython.i +++ b/src/ifcwrap/IfcPython.i @@ -136,6 +136,8 @@ #include "../serializers/SvgSerializer.h" #include "../serializers/WavefrontObjSerializer.h" #include "../serializers/HdfSerializer.h" + #include "../serializers/XmlSerializer.h" + #include "../serializers/GltfSerializer.h" #ifdef HAS_SCHEMA_2x3 #include "../ifcparse/Ifc2x3.h"