diff --git a/src/blenderbim/blenderbim/bim/module/drawing/decoration.py b/src/blenderbim/blenderbim/bim/module/drawing/decoration.py index 2863a328b8..3d7811cc4b 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/decoration.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/decoration.py @@ -268,7 +268,7 @@ class BaseDecorator: region = context.region region3d = context.region_data - color = context.scene.DocProperties.decorations_colour + color = context.preferences.addons["blenderbim"].preferences.decorations_colour fmt = GPUVertFormat() fmt.attr_add(id="pos", comp_type="F32", len=3, fetch_mode="FLOAT") @@ -341,7 +341,7 @@ class BaseDecorator: dpi = context.preferences.system.dpi - color = context.scene.DocProperties.decorations_colour + color = context.preferences.addons["blenderbim"].preferences.decorations_colour ang = -Vector((1, 0)).angle_signed(text_dir) cos = math.cos(ang) @@ -1910,8 +1910,8 @@ class CutDecorator: cls.installed = None def __call__(self, context): - self.model_props = context.scene.BIMModelProperties - selected_elements_color = self.model_props.decorator_color_selected + self.addon_prefs = context.preferences.addons["blenderbim"].preferences + selected_elements_color = self.addon_prefs.decorator_color_selected all_vertices = [] all_edges = [] diff --git a/src/blenderbim/blenderbim/bim/module/drawing/prop.py b/src/blenderbim/blenderbim/bim/module/drawing/prop.py index 7996fc0b84..9c9b80578d 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/prop.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/prop.py @@ -312,9 +312,6 @@ class DocProperties(PropertyGroup): ifc_files: CollectionProperty(name="IFCs", type=StrProperty) drawing_styles: CollectionProperty(name="Drawing Styles", type=DrawingStyle) should_draw_decorations: BoolProperty(name="Should Draw Decorations", update=toggleDecorations) - decorations_colour: FloatVectorProperty( - name="Decorations Colour", subtype="COLOR", default=(1, 1, 1, 1), min=0.0, max=1.0, size=4 - ) sheets_dir: StringProperty(default=os.path.join("sheets") + os.path.sep, name="Default Sheets Directory") layouts_dir: StringProperty(default=os.path.join("layouts") + os.path.sep, name="Default Layouts Directory") titleblocks_dir: StringProperty( diff --git a/src/blenderbim/blenderbim/bim/module/model/decorator.py b/src/blenderbim/blenderbim/bim/module/model/decorator.py index 9a84fae590..1a57437088 100644 --- a/src/blenderbim/blenderbim/bim/module/model/decorator.py +++ b/src/blenderbim/blenderbim/bim/module/model/decorator.py @@ -82,14 +82,14 @@ class ProfileDecorator: bmesh.ops.triangulate(traingulated_bm, faces=traingulated_bm.faces) face_indices = [[v.index for v in f.verts] for f in traingulated_bm.faces] - faces_color = transparent_color(self.model_props.decorator_color_special) + faces_color = transparent_color(self.addon_prefs.decorator_color_special) self.draw_batch("TRIS", vertices_coords, faces_color, face_indices) def __call__(self, context, get_custom_bmesh=None, draw_faces=False, exit_edit_mode_callback=None): - self.model_props = context.scene.BIMModelProperties - selected_elements_color = self.model_props.decorator_color_selected - unselected_elements_color = self.model_props.decorator_color_unselected - special_elements_color = self.model_props.decorator_color_special + self.addon_prefs = context.preferences.addons["blenderbim"].preferences + selected_elements_color = self.addon_prefs.decorator_color_selected + unselected_elements_color = self.addon_prefs.decorator_color_unselected + special_elements_color = self.addon_prefs.decorator_color_special obj = context.active_object @@ -214,8 +214,8 @@ class ProfileDecorator: self.draw_batch("POINTS", unselected_vertices, transparent_color(unselected_elements_color, 0.5)) self.draw_batch("POINTS", error_vertices, ERROR_ELEMENTS_COLOR) - self.draw_batch("POINTS", special_vertices, self.model_props.decorator_color_special) - self.draw_batch("POINTS", selected_vertices, self.model_props.decorator_color_selected) + self.draw_batch("POINTS", special_vertices, special_elements_color) + self.draw_batch("POINTS", selected_vertices, selected_elements_color) # Draw arcs arc_centroids = [] diff --git a/src/blenderbim/blenderbim/bim/module/model/opening.py b/src/blenderbim/blenderbim/bim/module/model/opening.py index d14a55beaa..b26621c62f 100644 --- a/src/blenderbim/blenderbim/bim/module/model/opening.py +++ b/src/blenderbim/blenderbim/bim/module/model/opening.py @@ -793,10 +793,10 @@ class DecorationsHandler: batch.draw(shader) def __call__(self, context): - self.model_props = context.scene.BIMModelProperties - selected_elements_color = self.model_props.decorator_color_selected - unselected_elements_color = self.model_props.decorator_color_unselected - special_elements_color = self.model_props.decorator_color_special + self.addon_prefs = context.preferences.addons["blenderbim"].preferences + selected_elements_color = self.addon_prefs.decorator_color_selected + unselected_elements_color = self.addon_prefs.decorator_color_unselected + special_elements_color = self.addon_prefs.decorator_color_special def transparent_color(color, alpha=0.1): color = [i for i in color] diff --git a/src/blenderbim/blenderbim/bim/module/model/prop.py b/src/blenderbim/blenderbim/bim/module/model/prop.py index 88332d6f1e..624d9aa59c 100644 --- a/src/blenderbim/blenderbim/bim/module/model/prop.py +++ b/src/blenderbim/blenderbim/bim/module/model/prop.py @@ -141,33 +141,6 @@ class BIMModelProperties(PropertyGroup): type_class: bpy.props.EnumProperty(items=get_type_class, name="IFC Class", update=update_type_class) type_predefined_type: bpy.props.EnumProperty(items=get_type_predefined_type, name="Predefined Type", default=None) type_name: bpy.props.StringProperty(name="Name", default="TYPEX") - decorator_color_selected: bpy.props.FloatVectorProperty( - name="Selected Elements Color", - subtype="COLOR", - default=(0.545, 0.863, 0, 1), # green - min=0.0, - max=1.0, - size=4, - description="Color of selected verts/edges (used in profile editing mode)", - ) - decorator_color_unselected: bpy.props.FloatVectorProperty( - name="Not Selected Elements Color", - subtype="COLOR", - default=(1, 1, 1, 1), # green - min=0.0, - max=1.0, - size=4, - description="Color of not selected verts/edges (used in profile editing mode)", - ) - decorator_color_special: bpy.props.FloatVectorProperty( - name="Special Elements Color", - subtype="COLOR", - default=(0.157, 0.565, 1, 1), # blue - min=0.0, - max=1.0, - size=4, - description="Color of special selected verts/edges (openings, preview verts/edges in roof editing, verts with arcs/circles in profile editing)", - ) class BIMArrayProperties(PropertyGroup): diff --git a/src/blenderbim/blenderbim/bim/ui.py b/src/blenderbim/blenderbim/bim/ui.py index 2a9e96bce0..c9e691eed6 100644 --- a/src/blenderbim/blenderbim/bim/ui.py +++ b/src/blenderbim/blenderbim/bim/ui.py @@ -120,6 +120,36 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): name="Should Make A Cha-Ching Sound When Project Costs Updates", default=False ) lock_grids_on_import: BoolProperty(name="Should Lock Grids By Default", default=True) + decorations_colour: bpy.props.FloatVectorProperty( + name="Decorations Colour", subtype="COLOR", default=(1, 1, 1, 1), min=0.0, max=1.0, size=4 + ) + decorator_color_selected: bpy.props.FloatVectorProperty( + name="Selected Elements Color", + subtype="COLOR", + default=(0.545, 0.863, 0, 1), # green + min=0.0, + max=1.0, + size=4, + description="Color of selected verts/edges (used in profile editing mode)", + ) + decorator_color_unselected: bpy.props.FloatVectorProperty( + name="Not Selected Elements Color", + subtype="COLOR", + default=(1, 1, 1, 1), # white + min=0.0, + max=1.0, + size=4, + description="Color of not selected verts/edges (used in profile editing mode)", + ) + decorator_color_special: bpy.props.FloatVectorProperty( + name="Special Elements Color", + subtype="COLOR", + default=(0.157, 0.565, 1, 1), # blue + min=0.0, + max=1.0, + size=4, + description="Color of special selected verts/edges (openings, preview verts/edges in roof editing, verts with arcs/circles in profile editing)", + ) def draw(self, context): layout = self.layout @@ -172,13 +202,13 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): row.prop(context.scene.BIMModelProperties, "occurrence_name_function") row = self.layout.row() - row.prop(context.scene.DocProperties, "decorations_colour") + row.prop(self, "decorations_colour") row = self.layout.row() - row.prop(context.scene.BIMModelProperties, "decorator_color_selected") + row.prop(self, "decorator_color_selected") row = self.layout.row() - row.prop(context.scene.BIMModelProperties, "decorator_color_unselected") + row.prop(self, "decorator_color_unselected") row = self.layout.row() - row.prop(context.scene.BIMModelProperties, "decorator_color_special") + row.prop(self, "decorator_color_special") row = self.layout.row(align=True) row.prop(context.scene.BIMProperties, "schema_dir")