Fix #2924. IfcElements default to a null predefined type so they can inherit where possible.

This commit is contained in:
Dion Moult
2023-04-03 13:54:25 +10:00
parent c947ccb8be
commit f291345111
2 changed files with 5 additions and 3 deletions
@@ -100,7 +100,7 @@ class Usecase:
return element
def handle_2x3_defaults(self, element):
if element.is_a("IfcElement") or element.is_a("IfcElementType"):
if element.is_a("IfcElementType"):
if hasattr(element, "PredefinedType") and not element.PredefinedType:
element.PredefinedType = "NOTDEFINED"
@@ -117,7 +117,7 @@ class Usecase:
element.Sizeable = False
def handle_4_defaults(self, element):
if element.is_a("IfcElement") or element.is_a("IfcElementType"):
if element.is_a("IfcElementType"):
if hasattr(element, "PredefinedType") and not element.PredefinedType:
element.PredefinedType = "NOTDEFINED"
@@ -32,7 +32,7 @@ class TestCreateEntity(test.bootstrap.IFC4):
def test_handling_predefined_types(self):
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcWall", name="Foo")
assert element.PredefinedType == "NOTDEFINED"
assert element.PredefinedType is None
element = ifcopenshell.api.run(
"root.create_entity", self.file, ifc_class="IfcWall", predefined_type="SHEAR", name="Foo"
)
@@ -54,6 +54,8 @@ class TestCreateEntity(test.bootstrap.IFC4):
assert element.ProcessType == "Foobar"
def test_setting_default_values_for_validity(self):
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcWallType", name="Foo")
assert element.PredefinedType == "NOTDEFINED"
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcDoorStyle", name="Foo")
assert element.OperationType == "NOTDEFINED"
assert element.ConstructionType == "NOTDEFINED"