From 45c45d68629a385302be5c318acb4e77c82f6f18 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 21 Mar 2025 14:35:47 +0100 Subject: [PATCH] ifcopenshell.geom.serializers.guess_from_extension() --- .../ifcopenshell/geom/main.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/ifcopenshell-python/ifcopenshell/geom/main.py b/src/ifcopenshell-python/ifcopenshell/geom/main.py index 01d5b4bf3f..07d267c06f 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/main.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/main.py @@ -655,3 +655,22 @@ class serializers: ) -> ifcopenshell_wrapper.SvgSerializer: out_filename = transform_string(out_filename) return ifcopenshell_wrapper.TtlWktSerializer(out_filename, geometry_settings, settings) + + @classmethod + def guess_from_extension(cls, filepath: str): + ext = filepath.split(".")[-1] + mapping = { + "glb": "gltf", + "hdf": "hdf5", + "h5": "hdf5", + "hdf5": "hdf5", + "obj": "obj", + "svg": "svg", + "ttl": "ttl", + "xml": "xml", + "dae": "collada", + } + serializer_name = mapping.get(ext) + if not serializer_name: + raise ValueError(f"No serializer available for .{ext} file") + return getattr(cls, serializer_name)