diff --git a/src/blenderbim/blenderbim/bim/module/sequence/operator.py b/src/blenderbim/blenderbim/bim/module/sequence/operator.py index ddcfc309e4..e66d492f3a 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/operator.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/operator.py @@ -51,7 +51,7 @@ class EnableStatusFilters(bpy.types.Operator): pset = element.PartOfPset[0] if pset.Name.startswith("Pset_") and pset.Name.endswith("Common"): statuses.update(element.EnumerationValues) - elif pset.Name == "EPset_Status": # Our secret sauce + elif pset.Name == "EPset_Status": # Our secret sauce statuses.update(element.EnumerationValues) elif element.Name == "UserDefinedStatus": statuses.add(element.NominalValue) @@ -67,6 +67,7 @@ class EnableStatusFilters(bpy.types.Operator): class DisableStatusFilters(bpy.types.Operator): bl_idname = "bim.disable_status_filters" bl_label = "Disable Status Filters" + bl_description = "Deactivate status filters panel.\nCan be used to refresh the displayed statuses" def execute(self, context): props = context.scene.BIMStatusProperties @@ -77,6 +78,7 @@ class DisableStatusFilters(bpy.types.Operator): class ActivateStatusFilters(bpy.types.Operator): bl_idname = "bim.activate_status_filters" bl_label = "Activate Status Filters" + bl_description = "Filter and display objects based on currently selected IFC statuses" def execute(self, context): props = context.scene.BIMStatusProperties @@ -92,6 +94,7 @@ class ActivateStatusFilters(bpy.types.Operator): query = " + ".join(query) if not query: + self.report({"INFO"}, "No statuses selected.") return {"FINISHED"} visible_elements = ifcopenshell.util.selector.filter_elements(tool.Ifc.get(), query) @@ -107,6 +110,7 @@ class ActivateStatusFilters(bpy.types.Operator): class SelectStatusFilter(bpy.types.Operator): bl_idname = "bim.select_status_filter" bl_label = "Select Status Filter" + bl_description = "Select elements with currently selected status" name: bpy.props.StringProperty() def execute(self, context): diff --git a/src/blenderbim/blenderbim/bim/module/sequence/prop.py b/src/blenderbim/blenderbim/bim/module/sequence/prop.py index 4ea2f667d8..83c48d5a02 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/prop.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/prop.py @@ -405,7 +405,7 @@ class ISODuration(PropertyGroup): class IFCStatus(PropertyGroup): name: StringProperty(name="Name") - is_visible: BoolProperty(name="Is Visible", default=True) + is_visible: BoolProperty(name="Is Visible", default=True, update=lambda x, y: bpy.ops.bim.activate_status_filters()) class BIMStatusProperties(PropertyGroup): diff --git a/src/blenderbim/blenderbim/bim/module/sequence/ui.py b/src/blenderbim/blenderbim/bim/module/sequence/ui.py index f28794e481..50542ffb19 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/ui.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/ui.py @@ -52,7 +52,7 @@ class BIM_PT_status(Panel): return row = self.layout.row(align=True) - row.operator("bim.activate_status_filters", icon="TIME") + row.label(text="Statuses found in the project:") row.operator("bim.disable_status_filters", icon="CANCEL", text="") for status in self.props.statuses: