diff --git a/src/bonsai/bonsai/bim/module/search/operator.py b/src/bonsai/bonsai/bim/module/search/operator.py index c8bef495b3..23b1501958 100644 --- a/src/bonsai/bonsai/bim/module/search/operator.py +++ b/src/bonsai/bonsai/bim/module/search/operator.py @@ -264,8 +264,10 @@ class ColourByProperty(Operator): colourscheme = {} obj_values = {} - min_value = None - max_value = None + min_mode = props.min_mode + max_mode = props.max_mode + min_value = props.min_value if min_mode == "MANUAL" else None + max_value = props.max_value if max_mode == "MANUAL" else None if is_qualitative and len(props.colourscheme): colourscheme = {cs.name: {"colour": cs.colour[0:3], "total": 0} for cs in props.colourscheme} @@ -292,10 +294,12 @@ class ColourByProperty(Operator): else: try: value = float(value) - if min_value is None or value < min_value: - min_value = value - if max_value is None or value > max_value: - max_value = value + if min_mode == "AUTO": + if min_value is None or value < min_value: + min_value = value + if max_mode == "AUTO": + if max_value is None or value > max_value: + max_value = value obj_values[obj] = value except: obj.color = (0, 0, 0, 1) diff --git a/src/bonsai/bonsai/bim/module/search/prop.py b/src/bonsai/bonsai/bim/module/search/prop.py index 687a1dc89b..acf4b959d3 100644 --- a/src/bonsai/bonsai/bim/module/search/prop.py +++ b/src/bonsai/bonsai/bim/module/search/prop.py @@ -142,6 +142,22 @@ class BIMSearchProperties(PropertyGroup): ], name="Palette", ) + min_mode: EnumProperty( + items=[ + ("AUTO", "Automatic", "Automatically determine the minimum value"), + ("MANUAL", "Manual", "Manually specify the minimum value"), + ], + name="Min Mode", + ) + max_mode: EnumProperty( + items=[ + ("AUTO", "Automatic", "Automatically determine the maximum value"), + ("MANUAL", "Manual", "Manually specify the maximum value"), + ], + name="Max Mode", + ) + min_value: FloatProperty(name="Min Value", default=100) + max_value: FloatProperty(name="Max Value", default=100) colourscheme: CollectionProperty(type=BIMColour) active_colourscheme_index: IntProperty(name="Active Colourscheme Index") filter_type: StringProperty(name="Filter Type") diff --git a/src/bonsai/bonsai/bim/module/search/ui.py b/src/bonsai/bonsai/bim/module/search/ui.py index ec6b61290e..f121bbc994 100644 --- a/src/bonsai/bonsai/bim/module/search/ui.py +++ b/src/bonsai/bonsai/bim/module/search/ui.py @@ -88,6 +88,17 @@ class BIM_PT_colour_by_property(Panel): row = self.layout.row() row.prop(props, "palette") + if props.palette not in ("tab10", "paired"): + row = self.layout.row(align=True) + row.prop(props, "min_mode", text="Min Value") + if props.min_mode == "MANUAL": + row.prop(props, "min_value", text="") + + row = self.layout.row(align=True) + row.prop(props, "max_mode", text="Max Value") + if props.max_mode == "MANUAL": + row.prop(props, "max_value", text="") + row = self.layout.row(align=True) row.operator("bim.colour_by_property", icon="BRUSH_DATA") row.operator("bim.reset_object_colours")