diff --git a/src/blenderbim/blenderbim/bim/data/styles/default.css b/src/blenderbim/blenderbim/bim/data/styles/default.css
index b3f0017b48..888e167c27 100644
--- a/src/blenderbim/blenderbim/bim/data/styles/default.css
+++ b/src/blenderbim/blenderbim/bim/data/styles/default.css
@@ -23,9 +23,8 @@ text { fill: black; stroke: none; }
.cut { fill: black; stroke: black; stroke-linecap: 'round'; stroke-width: 0.35; fill-rule: evenodd; }
.projection { fill: white; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; }
.annotation { fill: none; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; }
-.solid {}
.IfcAnnotation { fill: none; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; }
-.PredefinedType-MISC { stroke: black; stroke-width: 0.25; }
+.PredefinedType-LINEWORK { stroke: black; stroke-width: 0.25; }
.PredefinedType-BACKGROUND { stroke: black; stroke-width: 0.18; }
.PredefinedType-GRID { marker-start: url(#grid-marker); marker-end: url(#grid-marker); }
.PredefinedType-SECTION { stroke-dasharray: 12.5, 3, 3, 3; }
@@ -37,11 +36,11 @@ text { fill: black; stroke: none; }
.PredefinedType-BOUNDARY { fill: none; stroke: red; stroke-width: 1; stroke-dasharray: 12, 4, 3, 4, 3, 4; }
.PredefinedType-BATTING { marker-start: url(#batting); stroke: none; }
.PredefinedType-SEALANT { fill: url(#crosshatch1); stroke-width: 0.25; }
+.PredefinedType-FILLAREA { fill: white; stroke: none; }
+.PredefinedType-BREAKLINE { fill: none; stroke: black; stroke-width: 0.25; marker-mid: url(#breakline-marker); }
.PredefinedType-TEXT { fill: black; stroke: none; }
path.PredefinedType-TEXTLEADER { marker-end: url(#leader-marker); }
text.PredefinedType-TEXTLEADER { fill: black; stroke: none; }
-.break { fill: white; }
-.breakline { fill: none; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; marker-mid: url(#breakline-marker); }
.material-blank { fill: white; }
.material-diagonal1 { fill: url(#diagonal1); }
.material-diagonal2 { fill: url(#diagonal2); }
diff --git a/src/blenderbim/blenderbim/bim/data/templates/markers.svg b/src/blenderbim/blenderbim/bim/data/templates/markers.svg
index a62a65dc4d..a2bfacc79f 100644
--- a/src/blenderbim/blenderbim/bim/data/templates/markers.svg
+++ b/src/blenderbim/blenderbim/bim/data/templates/markers.svg
@@ -57,7 +57,7 @@
-
+
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py
index d7fa9768c7..fc5cf2b36e 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py
@@ -557,14 +557,16 @@ class SvgWriter:
)
)
- def draw_break_annotations(self, break_obj):
+ def draw_break_annotations(self, obj):
x_offset = self.raw_width / 2
y_offset = self.raw_height / 2
- matrix_world = break_obj.matrix_world
- for polygon in break_obj.data.polygons:
- points = [break_obj.data.vertices[v] for v in polygon.vertices]
+ classes = self.get_attribute_classes(obj)
+ matrix_world = obj.matrix_world
+ for edge in obj.data.edges:
+ points = [obj.data.vertices[v] for v in edge.vertices]
projected_points = [self.project_point_onto_camera(matrix_world @ p.co.xyz) for p in points]
+ projected_points = [projected_points[0], (projected_points[0] + projected_points[1]) / 2, projected_points[1]]
d = " ".join(
[
"L {} {}".format((x_offset + p.x) * self.scale, (y_offset - p.y) * self.scale)
@@ -572,18 +574,8 @@ class SvgWriter:
]
)
d = "M{}".format(d[1:])
- path = self.svg.add(self.svg.path(d=d, class_=" ".join(["break"])))
+ path = self.svg.add(self.svg.path(d=d, class_=" ".join(classes)))
- break_points = [
- projected_points[0],
- ((projected_points[1] - projected_points[0]) / 2) + projected_points[0],
- projected_points[1],
- ]
- d = " ".join(
- ["L {} {}".format((x_offset + p.x) * self.scale, (y_offset - p.y) * self.scale) for p in break_points]
- )
- d = "M{}".format(d[1:])
- path = self.svg.add(self.svg.path(d=d, class_=" ".join(["breakline"])))
def draw_plan_level_annotation(self, obj):
x_offset = self.raw_width / 2
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/ui.py b/src/blenderbim/blenderbim/bim/module/drawing/ui.py
index 5eb481576c..0f586766bc 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/ui.py
@@ -361,10 +361,14 @@ class BIM_PT_annotation_utilities(Panel):
op = row.operator("bim.add_annotation", text="Breakline", icon="FCURVE")
op.object_type = "BREAKLINE"
op.data_type = "mesh"
- op = row.operator("bim.add_annotation", text="Misc", icon="MESH_MONKEY")
- op.object_type = "MISC"
+ op = row.operator("bim.add_annotation", text="Line", icon="MESH_MONKEY")
+ op.object_type = "LINEWORK"
op.data_type = "mesh"
+ row = layout.row(align=True)
+ op = row.operator("bim.add_annotation", text="Fill Area", icon="NODE_TEXTURE")
+ op.object_type = "FILL_AREA"
+
row = layout.row(align=True)
row.prop(self.props, "should_draw_decorations", text="Viewport Annotations")
diff --git a/src/blenderbim/blenderbim/tool/drawing.py b/src/blenderbim/blenderbim/tool/drawing.py
index defdb23234..0999571946 100644
--- a/src/blenderbim/blenderbim/tool/drawing.py
+++ b/src/blenderbim/blenderbim/tool/drawing.py
@@ -46,10 +46,11 @@ class Drawing(blenderbim.core.tool.Drawing):
"PLAN_LEVEL": "curve",
"SECTION_LEVEL": "curve",
"BREAKLINE": "mesh",
- "MISC": "mesh",
+ "FILL_AREA": "mesh",
+ "LINEWORK": "mesh",
}[object_type]
obj = annotation.Annotator.get_annotation_obj(object_type, data_type)
- if object_type == "BREAKLINE":
+ if object_type == "FILL_AREA":
obj = annotation.Annotator.add_plane_to_annotation(obj)
elif object_type != "TEXT":
obj = annotation.Annotator.add_line_to_annotation(obj)