mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
fix removing drawings from sheets when deleting drawings #3645
This commit is contained in:
@@ -1545,6 +1545,9 @@ class RemoveDrawing(bpy.types.Operator, Operator):
|
||||
removed_drawings = [drawing.id() for drawing in drawings]
|
||||
|
||||
for drawing in drawings:
|
||||
sheet_references = tool.Drawing.get_sheet_references(drawing)
|
||||
for reference in sheet_references:
|
||||
bpy.ops.bim.remove_drawing_from_sheet(reference=reference.id())
|
||||
core.remove_drawing(tool.Ifc, tool.Drawing, drawing=drawing)
|
||||
|
||||
|
||||
|
||||
@@ -1835,3 +1835,17 @@ class Drawing(blenderbim.core.tool.Drawing):
|
||||
direction = end - start
|
||||
offset = distance * (direction / np.linalg.norm(direction))
|
||||
return (start - offset).tolist(), (end + offset).tolist()
|
||||
|
||||
@classmethod
|
||||
def get_sheet_references(cls, drawing):
|
||||
sheet_references = []
|
||||
drawing_reference = cls.get_drawing_document(drawing)
|
||||
for sheet in tool.Ifc.get().by_type("IfcDocumentInformation"):
|
||||
if not sheet.Scope == "SHEET":
|
||||
continue
|
||||
references = cls.get_document_references(sheet)
|
||||
for reference in references:
|
||||
if reference.Location == drawing_reference.Location:
|
||||
sheet_references.append(reference)
|
||||
break
|
||||
return sheet_references
|
||||
|
||||
Reference in New Issue
Block a user