diff --git a/src/bonsai/bonsai/core/drawing.py b/src/bonsai/bonsai/core/drawing.py index 5db2ced03e..ddc9090cbe 100644 --- a/src/bonsai/bonsai/core/drawing.py +++ b/src/bonsai/bonsai/core/drawing.py @@ -412,16 +412,20 @@ def remove_drawing( drawing_tool.delete_object(reference_obj) ifc.run("root.remove_product", product=reference) - information = drawing_tool.get_reference_document(drawing_tool.get_drawing_document(drawing)) - uri = ifc.resolve_uri(drawing_tool.get_document_uri(information)) - if drawing_tool.does_file_exist(uri): - drawing_tool.delete_file(uri) - ifc.run("document.remove_information", information=information) + drawing_document = drawing_tool.get_drawing_document(drawing) + if drawing_document is not None: + information = drawing_tool.get_reference_document(drawing_document) + uri = ifc.resolve_uri(drawing_tool.get_document_uri(information)) + if drawing_tool.does_file_exist(uri): + drawing_tool.delete_file(uri) + ifc.run("document.remove_information", information=information) group = drawing_tool.get_drawing_group(drawing) if group: drawing_tool.delete_drawing_elements(drawing_tool.get_group_elements(group)) ifc.run("group.remove_group", group=group) + else: + drawing_tool.delete_drawing_elements([drawing]) drawing_tool.import_drawings() diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index 232e963359..bfe7c51624 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -2765,6 +2765,8 @@ class Drawing(bonsai.core.tool.Drawing): def get_sheet_references(cls, drawing: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: sheet_references: list[ifcopenshell.entity_instance] = [] drawing_reference = cls.get_drawing_document(drawing) + if drawing_reference is None: + return sheet_references for sheet in tool.Ifc.get().by_type("IfcDocumentInformation"): if not sheet.Scope == "SHEET": continue