Fix #4490. Fix fundamental bug where get_pset would return none for inherited props with a boolean False value.

This commit is contained in:
Dion Moult
2024-04-10 12:57:52 +10:00
parent 0a4ff00bce
commit 97eb34ca0d
3 changed files with 6 additions and 3 deletions
+1 -1
View File
@@ -209,7 +209,7 @@ class ImportFilterQueryTransformer(lark.Transformer):
return (
is_not
+ {
"equals": "", # Blank because it's the default situation
"equals": "=" if is_not else "", # Blank because it's the default situation
"morethanequalto": ">=",
"lessthanequalto": "<=",
"morethan": ">",
@@ -93,13 +93,13 @@ def get_pset(
elif qtos_only and not pset.is_a("IfcElementQuantity"):
pset = None
if type_pset:
if type_pset is not None:
if psets_only and not type_pset.is_a("IfcPropertySet"):
type_pset = None
elif qtos_only and not type_pset.is_a("IfcElementQuantity"):
type_pset = None
if not pset and not type_pset:
if not pset and type_pset is None:
return
if not prop:
@@ -68,6 +68,9 @@ class TestGetPsetIFC4(test.bootstrap.IFC4):
assert subject.get_pset(element, "name", "a") == 2
assert subject.get_pset(element, "name", "x") == 1
assert subject.get_pset(element, "name", "b") == 3
pset = ifcopenshell.api.run("pset.add_pset", self.file, product=type_element, name="name2")
ifcopenshell.api.run("pset.edit_pset", self.file, pset=pset, properties={"z": False})
assert subject.get_pset(element, "name2", "z") is False
def test_excluding_inherited_psets(self):
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcWall")