diff --git a/openpype/settings/defaults/project_settings/global.json b/openpype/settings/defaults/project_settings/global.json
index cff1259c98..c418377682 100644
--- a/openpype/settings/defaults/project_settings/global.json
+++ b/openpype/settings/defaults/project_settings/global.json
@@ -297,6 +297,7 @@
"family_filter_profiles": [
{
"hosts": [],
+ "is_include": true,
"task_types": [],
"filter_families": []
}
diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_tools.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_tools.json
index bb71c9bde6..863ec7f979 100644
--- a/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_tools.json
+++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_tools.json
@@ -267,7 +267,13 @@
"label": "Task types"
},
{
- "type": "splitter"
+ "type": "boolean",
+ "key": "is_include",
+ "label": "Exclude (OFF) / Include (ON)"
+ },
+ {
+ "type": "label",
+ "label": "Include: show selected families by default. Hides others by default.
Exclude: hide selected families by default. Shows others by default."
},
{
"type": "template",
diff --git a/openpype/tools/utils/lib.py b/openpype/tools/utils/lib.py
index 6742df8557..886cdb5186 100644
--- a/openpype/tools/utils/lib.py
+++ b/openpype/tools/utils/lib.py
@@ -228,6 +228,7 @@ class FamilyConfigCache:
self.dbcon = dbcon
self.family_configs = {}
self._family_filters_set = False
+ self._family_filters_is_include = True
self._require_refresh = True
@classmethod
@@ -249,7 +250,7 @@ class FamilyConfigCache:
"icon": self.default_icon()
}
if self._family_filters_set:
- item["state"] = False
+ item["state"] = not self._family_filters_is_include
return item
def refresh(self, force=False):
@@ -313,20 +314,23 @@ class FamilyConfigCache:
matching_item = filter_profiles(profiles, profiles_filter)
families = []
+ is_include = True
if matching_item:
families = matching_item["filter_families"]
+ is_include = matching_item["is_include"]
if not families:
return
self._family_filters_set = True
+ self._family_filters_is_include = is_include
# Replace icons with a Qt icon we can use in the user interfaces
for family in families:
family_info = {
"name": family,
"icon": self.default_icon(),
- "state": True
+ "state": is_include
}
self.family_configs[family] = family_info