From f3c1d1df31b53c38c69234f56735aaa35a422423 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 7 Jun 2021 15:52:23 +1000 Subject: [PATCH] Fix bug where you couldn't delete a quantity from a quantity set --- src/blenderbim/blenderbim/bim/module/pset/operator.py | 3 +++ .../ifcopenshell/api/pset/edit_qto.py | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/pset/operator.py b/src/blenderbim/blenderbim/bim/module/pset/operator.py index d92010881d..c5242c7bbc 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset/operator.py @@ -192,6 +192,9 @@ class EditPset(bpy.types.Operator): }, ) else: + for key, value in properties.items(): + if isinstance(value, float): + properties[key] = round(value, 4) ifcopenshell.api.run( "pset.edit_qto", self.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py index ac391e4552..7168fb02f6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py @@ -32,9 +32,12 @@ class Usecase: if prop.Name not in self.settings["properties"]: return value = self.settings["properties"][prop.Name] - if prop.is_a("IfcPhysicalSimpleQuantity"): - prop[3] = float(value) if value else None - del self.settings["properties"][prop.Name] + name = prop.Name + if value is None: + self.file.remove(prop) + elif prop.is_a("IfcPhysicalSimpleQuantity"): + prop[3] = float(value) + del self.settings["properties"][name] def add_new_properties(self): properties = []