From abaae7f06df3cd012d0aa51a8a82e17bff2dd06b Mon Sep 17 00:00:00 2001 From: QwiglyDee Date: Sat, 26 Dec 2020 23:25:39 +0700 Subject: [PATCH] copying grid. close #1210 --- .../blenderbim/bim/__init__.py | 1 + .../blenderbim/bim/operator.py | 20 +++++++++++++++++++ src/ifcblenderexport/blenderbim/bim/ui.py | 2 ++ 3 files changed, 23 insertions(+) diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 62eb4030aa..7ea01eae49 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -245,6 +245,7 @@ if bpy is not None: operator.CleanWireframes, operator.LinkIfc, operator.SnapSpacesTogether, + operator.CopyGrid, prop.StrProperty, prop.Attribute, prop.MaterialLayer, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index 3f963ec85e..5661c03e48 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -1,3 +1,4 @@ +from itertools import chain import os import bpy import bcf @@ -5198,3 +5199,22 @@ class SnapSpacesTogether(bpy.types.Operator): for v in polygon.vertices: obj.data.vertices[v].co += offset return {"FINISHED"} + + +class CopyGrid(bpy.types.Operator): + bl_idname = "bim.add_grid" + bl_label = "Add Grid" + + def execute(self, context): + props = context.scene.DocProperties + if props.active_drawing_index is None or len(props.drawings) == 0: + return {"CANCELED"} + drawing = props.drawings[props.active_drawing_index] + collection = bpy.data.collections.get("IfcGroup/" + drawing.name) + + for coll in bpy.data.collections: + if coll.name.startswith('IfcGrid'): + for obj in coll.all_objects: + if obj.type == 'MESH': + collection.objects.link(obj.copy()) + return {"FINISHED"} diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index 13b71347ab..d80e32f013 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -2416,6 +2416,8 @@ class BIM_PT_annotation_utilities(Panel): row.operator("bim.clean_wireframes") row = layout.row(align=True) row.operator("bim.link_ifc") + row = layout.row(align=True) + row.operator("bim.add_grid") row = layout.row(align=True) op = row.operator("bim.add_annotation", text="Dim", icon="ARROW_LEFTRIGHT")