mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 06:21:40 +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]
|
removed_drawings = [drawing.id() for drawing in drawings]
|
||||||
|
|
||||||
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)
|
core.remove_drawing(tool.Ifc, tool.Drawing, drawing=drawing)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1835,3 +1835,17 @@ class Drawing(blenderbim.core.tool.Drawing):
|
|||||||
direction = end - start
|
direction = end - start
|
||||||
offset = distance * (direction / np.linalg.norm(direction))
|
offset = distance * (direction / np.linalg.norm(direction))
|
||||||
return (start - offset).tolist(), (end + offset).tolist()
|
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