mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 18:21:59 +00:00
Revision Clouds - new annotation type
Short demonstration - https://github.com/IfcOpenShell/IfcOpenShell/assets/9417531/90c9b458-0bae-40a2-9eee-d748e57c24a3 Curently it doesn't have any special representation in viewport and it doesn't have any customisable parameters. You might get come across error "Revision cloud edges must form just 1 polygon" - it means your edges either don't form any polygon or form 2 or more, both cases are not supported.
This commit is contained in:
@@ -37,7 +37,7 @@ import blenderbim.bim.module.drawing.annotation as annotation
|
||||
import blenderbim.bim.module.drawing.helper as helper
|
||||
|
||||
from blenderbim.bim.module.drawing.data import FONT_SIZES, DecoratorData
|
||||
from blenderbim.bim.module.drawing.prop import get_diagram_scales, BOX_ALIGNMENT_POSITIONS
|
||||
from blenderbim.bim.module.drawing.prop import get_diagram_scales, BOX_ALIGNMENT_POSITIONS, ANNOTATION_TYPES_DATA
|
||||
|
||||
from mathutils import Vector
|
||||
import collections
|
||||
@@ -55,28 +55,18 @@ class Drawing(blenderbim.core.tool.Drawing):
|
||||
tool.Ifc.get(), source.Representation, exclude=["IfcGeometricRepresentationContext"]
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def get_annotation_data_type(cls, object_type):
|
||||
return ANNOTATION_TYPES_DATA[object_type][3]
|
||||
|
||||
@classmethod
|
||||
def create_annotation_object(cls, drawing, object_type):
|
||||
data_type = {
|
||||
"ANGLE": "curve",
|
||||
"BATTING": "mesh",
|
||||
"BREAKLINE": "mesh",
|
||||
"DIAMETER": "curve",
|
||||
"DIMENSION": "curve",
|
||||
"FALL": "curve",
|
||||
"FILL_AREA": "mesh",
|
||||
"HIDDEN_LINE": "mesh",
|
||||
"LINEWORK": "mesh",
|
||||
"PLAN_LEVEL": "curve",
|
||||
"RADIUS": "curve",
|
||||
"SECTION_LEVEL": "curve",
|
||||
"STAIR_ARROW": "curve",
|
||||
"TEXT": "empty",
|
||||
"TEXT_LEADER": "curve",
|
||||
}[object_type]
|
||||
data_type = cls.get_annotation_data_type(object_type)
|
||||
obj = annotation.Annotator.get_annotation_obj(drawing, object_type, data_type)
|
||||
if object_type == "FILL_AREA":
|
||||
obj = annotation.Annotator.add_plane_to_annotation(obj)
|
||||
elif object_type == "REVISION_CLOUD":
|
||||
obj = annotation.Annotator.add_plane_to_annotation(obj, remove_face=True)
|
||||
elif object_type == "TEXT_LEADER":
|
||||
co1, _, co2, _ = annotation.Annotator.get_placeholder_coords()
|
||||
obj = annotation.Annotator.add_line_to_annotation(obj, co2, co1)
|
||||
|
||||
Reference in New Issue
Block a user