From 7f49ebea555ed146a2045075e97a22c39d951512 Mon Sep 17 00:00:00 2001 From: QwiglyDee Date: Tue, 29 Dec 2020 02:04:08 +0700 Subject: [PATCH 1/3] fixed addin grid close #1217, close #1215 --- .../blenderbim/bim/operator.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index cd8e097b0d..e420db8628 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -5525,9 +5525,18 @@ class CopyGrid(bpy.types.Operator): 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()) + existing = [obj for obj in collection.objects if obj.name.startswith('IfcGridAxis')] + for obj in existing: + collection.objects.unlink(obj) + + source = [obj + for coll in bpy.data.collections + if coll.name.startswith('IfcGrid') + for obj in coll.all_objects + if obj.type == 'MESH'] + for obj in source: + dstobj = obj.copy() + dstobj.data = dstobj.data.copy() + collection.objects.link(dstobj) + return {"FINISHED"} From 82468370a70b8ba1e9e1a6680f80848ed5aa851a Mon Sep 17 00:00:00 2001 From: QwiglyDee Date: Tue, 29 Dec 2020 02:09:48 +0700 Subject: [PATCH 2/3] fixed Level decoration color close #1213 --- src/ifcblenderexport/blenderbim/bim/decoration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcblenderexport/blenderbim/bim/decoration.py b/src/ifcblenderexport/blenderbim/bim/decoration.py index 68d1afa855..ead3a4ced5 100644 --- a/src/ifcblenderexport/blenderbim/bim/decoration.py +++ b/src/ifcblenderexport/blenderbim/bim/decoration.py @@ -750,7 +750,7 @@ class SectionDecorator(LevelDecorator): if (t > 0.875 || (t > 0.25 && t < 0.375)) { discard; } else { - fragColor = vec4(1.0, 1.0, 1.0, 1.0); + fragColor = COLOR; } } """ From 7c45181a6e9cd83ec787af2cb411f5791534f815 Mon Sep 17 00:00:00 2001 From: QwiglyDee Date: Tue, 29 Dec 2020 02:15:28 +0700 Subject: [PATCH 3/3] fixed decoration of broken geom again --- src/ifcblenderexport/blenderbim/bim/decoration.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ifcblenderexport/blenderbim/bim/decoration.py b/src/ifcblenderexport/blenderbim/bim/decoration.py index ead3a4ced5..6748501c33 100644 --- a/src/ifcblenderexport/blenderbim/bim/decoration.py +++ b/src/ifcblenderexport/blenderbim/bim/decoration.py @@ -403,6 +403,8 @@ class EqualityDecorator(DimensionDecorator): p0 = location_3d_to_region_2d(region, region3d, v0) p1 = location_3d_to_region_2d(region, region3d, v1) dir = p1 - p0 + if dir.length < 1: + continue self.draw_label("EQ", p0 + (dir) * .5, dir) @@ -617,6 +619,8 @@ class LevelDecorator(BaseDecorator): """ for spline in obj.data.splines: spline_points = spline.bezier_points if spline.bezier_points else spline.points + if len(spline_points) < 2: + continue yield [obj.matrix_world @ p.co for p in spline_points] def decorate(self, obj): @@ -691,6 +695,8 @@ class PlanDecorator(LevelDecorator): p0 = location_3d_to_region_2d(region, region3d, v0) p1 = location_3d_to_region_2d(region, region3d, v1) dir = p1 - p0 + if dir.length < 1: + continue text = "RL " + self.format_value(verts[-1].z) self.draw_label(text, p0, dir, gap=8, center=False) @@ -764,5 +770,7 @@ class SectionDecorator(LevelDecorator): p0 = location_3d_to_region_2d(region, region3d, v0) p1 = location_3d_to_region_2d(region, region3d, v1) dir = p1 - p0 + if dir.length < 1: + continue text = "RL " + self.format_value(verts[-1].z) self.draw_label(text, p0 + dir.normalized() * 16, -dir, gap=16, center=False)