From 3a0aaee03b0cad8b05f7965d080d5bbeef0e9457 Mon Sep 17 00:00:00 2001 From: Totally a booplicate <53382877+Booplicate@users.noreply.github.com> Date: Sun, 4 Jun 2023 14:21:02 +0300 Subject: [PATCH] restructure if/elif/else chain --- .../ifcopenshell/api/pset/edit_pset.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py index cb3827332c..b463661272 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py @@ -201,6 +201,7 @@ class Usecase: """ value = self.settings["properties"][prop.Name] unit, value = self.unpack_unit_value(value) + if isinstance(value, (tuple, list)): sel_vals = [] for val in value: @@ -210,17 +211,23 @@ class Usecase: ifc_val = self.file.create_entity(primary_measure_type, val) sel_vals.append(ifc_val) prop.EnumerationValues = tuple(sel_vals) or None - else: - if value.EnumerationReference.EnumerationValues == (): + + elif ( + isinstance(value, ifcopenshell.entity_instance) + and value.is_a("IfcPropertyEnumeratedValue") + ): + if not value.EnumerationReference.EnumerationValues: if self.settings["should_purge"]: del self.settings["properties"][prop.Name] self.file.remove(prop) return prop.EnumerationReference.EnumerationValues = None prop.EnumerationValues = None - elif isinstance(value, ifcopenshell.entity_instance): + + else: prop.EnumerationReference.EnumerationValues = value.EnumerationReference.EnumerationValues prop.EnumerationValues = value.EnumerationValues + if unit: prop.Unit = unit del self.settings["properties"][prop.Name]