Fix possible crash removing resource after 1f21e96

This commit is contained in:
Andrej730
2024-11-22 17:12:56 +05:00
parent 69eca15195
commit 091ed3bb8d
@@ -46,9 +46,12 @@ def remove_resource(file: ifcopenshell.file, resource: ifcopenshell.entity_insta
for inverse in file.get_inverse(settings["resource"]): for inverse in file.get_inverse(settings["resource"]):
if inverse.is_a("IfcRelNests"): if inverse.is_a("IfcRelNests"):
if inverse.RelatingObject == settings["resource"]: if inverse.RelatingObject == settings["resource"]:
for related_object in inverse.RelatedObjects: # Remove rel before iteration over objects
ifcopenshell.api.resource.remove_resource(file, resource=related_object) # to simplify removal of nested resources and avoid crashes.
related_objects = inverse.RelatedObjects
remove_consider_history(inverse) remove_consider_history(inverse)
for related_object in related_objects:
ifcopenshell.api.resource.remove_resource(file, resource=related_object)
elif inverse.RelatedObjects == (resource,): elif inverse.RelatedObjects == (resource,):
remove_consider_history(inverse) remove_consider_history(inverse)