From be8e96d91843d6375265b5b5bc24a595642556c4 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 6 Aug 2025 09:18:10 +0200 Subject: [PATCH] standalone_drawer.py: dont require drawing elements to be speified on cli --- src/bonsai/scripts/standalone_drawer.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/bonsai/scripts/standalone_drawer.py b/src/bonsai/scripts/standalone_drawer.py index eee2432143..6cd6bf13a6 100644 --- a/src/bonsai/scripts/standalone_drawer.py +++ b/src/bonsai/scripts/standalone_drawer.py @@ -16,10 +16,10 @@ class LineworkContexts(NamedTuple): class Drawer: def execute(self): - if len(sys.argv) < 5: - print(f"Expected 4 arguments, got {len(sys.argv) - 1}. Example usage:") + if len(sys.argv) < 4: + print(f"Expected 3 or 4 arguments, got {len(sys.argv) - 1}. Example usage:") print( - "python standalone_drawer.py drawing.ifc drawing_guid drawing_element_guid1,drawing_element_guid2,drawing_element_guid3 output.svg" + "python standalone_drawer.py drawing.ifc drawing_guid [drawing_element_guid1,drawing_element_guid2,drawing_element_guid3] output.svg" ) exit(1) @@ -30,7 +30,10 @@ class Drawer: # Get all representation contexts to see what we're dealing with. target_view = ifcopenshell.util.element.get_psets(self.camera_element)["EPset_Drawing"]["TargetView"] contexts = self.get_linework_contexts(ifc, target_view) - drawing_elements = set([ifc.by_guid(g) for g in sys.argv[3].split(",")]) + if len(sys.argv) == 6: + drawing_elements = set([ifc.by_guid(g) for g in sys.argv[3].split(",")]) + else: + drawing_elements = set(ifc.by_type('IfcElement')) self.setup_serialiser(ifc, target_view) @@ -55,7 +58,7 @@ class Drawer: results = self.svg_buffer.get_value() print("results", results) - with open(sys.argv[4], "w") as svg: + with open(sys.argv[-1], "w") as svg: svg.write(results) def get_linework_contexts(self, ifc, target_view) -> LineworkContexts: