Selection Group Filtering in the "Combine Selection Groups" Dialog


The Filter Options in the "Combine Selection Groups" Dialog allow you to easily show and hide Selection Groups in the List view, in order to mark them for "Combining".
The Filter System is a combination of so called "Global Filters" (accessible via Buttons as well as Search Variables) and the Main Search Bar which supports complex expressions.


In general the Filter system mimics the system of the "Visibility Filters"  in the Selection Group Palette, so knowledge about the Filter bar in this Dialog is transferable to there and vice versa.




Pay attention to tooltips. Nearly every function in the Toolbar has extensive tooltips listing functionality and hotkeys





Global Filters

Global Filters are directly accessible via exposed buttons in the toolbar. Global Filters can work on their own (e.g. "Show me only Face Selection Groups") or in concert with the Expression Filter bar

(e.g. "Show me all 'Wheels' in Selection Group Names  on Selection Groups of Type Face")



Selection Group Type Filters prefilter the main list view to only show Selection Groups of a certain type, e.g. if you set it to "Face" only Face Selection Groups will be shown.

Mari can create 3 different types of Selection Groups, depending on which Scene Selection Mode is active, when you create a Selection Group:


  • Face - containing Polygons
  • Patch - containing entire UDIMs
  • Object - containing an entire Object



You can target the different modes by ensuring the corresponding button is active:

  Face Mode - Hotkey: F
  Patch Mode - Hotkey: P

 Object Mode - Hotkey: O


Example of first deactivating display of Face Groups, then display of Patch Groups - leaving only Object Groups visible in the list


Apart from using the Filter Buttons in the UI, Selection Type Filters can also be set using Variables in the Filter Field, which gives additional control.


The following variables can be used in the Search field to overwrite the Selection Type Filter. Variables are case-insensitive.
If a variable is used in the search, the UI Filter buttons will be disabled/grayed out


  • $face
  • $patch
  • $obj


Example of targeting "All Face Groups containing the word "rails" and all Object Groups containing the word 'plane' "


Variables can be inverted to act like "Except" or "Not" by prefixing them with an exclamation mark (!) e.g. 

  • !$face
  • !$patch
  • !$obj


You can use the variables on their own or  combine variables freely e.g. "$face,$obj" to show both Face and Object Groups. Or "wheel+$face" to only show Face Groups containing the word "wheel"

Example of targeting "All Selection Groups that are not Face Groups and contain the word window "



The Visibility Filters prefilter the List View to only show Selection Groups that are marked visible or invisible in the Mari Selection Group Palette.
The Selection Group Visibility State can be seen in the "Scene Visibility" Column of the List view




Example of one visible and one invisible Selection Group in Mari's Selection Group Palette. The "Scene Visibility"  Column of the Dialog mimics this


By default both Visible and Invisible Groups are displayed, however you can toggle the buttons off to limit the display to either just visible ones or just invisible Selection Groups.

 

Example of only showing invisible Groups in the List View


Apart from using the Filter Buttons in the UI, Visibility Filters can also be set using Variables in the Filter Field, which gives additional control.


The following variables can be used in the Search field to overwrite the Visibility Filters. Variables are case-insensitive.
If a variable is used in the search, the UI Filter buttons will be disabled/grayed out


  • $vis
  • $invis


These variables can also be inverted by prefixing them with an exclamation mark (!). In these cases they would act as their counterpart


  • !$vis .... is equal to $invis
  • !$invis ... is equal to $vis


You can use the Variables on their own or combine and target them to only specific Groups e.g. 


wheel+$vis, rails+$invis



.. will only show Selection Groups containing the word "wheel" and that are visible as well as Selection Groups containing the word "rails" that are invisible.

If you for example only type $vis into the search field, only visible groups will be shown in the list view and the behavior is the same as if you untick the "Invisible" Button


The "Active" Filter will pre-filter the List View to only show Rows that have the "Combine" Checkbox ticked on.


Apart from using the Filter Button in the UI, Active Filters can also be set using Variables in the Filter Field, which gives additional control.


The following variables can be used in the Search field to overwrite the Active Filters. Variables are case-insensitive.
If a variable is used in the search, the UI Filter buttons will be disabled/grayed out


  • $act
  • !$act


$act will only display Selection Groups with a "Combine" Checkbox, while !$act will show Selection Group Rows without a ticked Checkbox.


You can combine these variables freely and either use them alone or in combination with other filter terms e.g.


$act+wheel+$face


..to only show Face Groups, containing the word "wheel" that have the "Combine" Checkbox ticked on.



The "Path" Filter Buttons allow you to limit the Search done via the Search Field, to parts of a Selection Group Name.

If you import a non-combined mesh from an application such as Maya, creating a new project in Mari might auto-create Selection Groups for you, corresponding to the Hierarchy in Maya.


Example of a Model Hierarchy inside Maya's Outliner and the corresponding Selection Group Name in Mari


The two "Path Filter" Buttons allow you to limit the search to


    • the full path and object
    • just the path
    • just the object



If only the Left Facing Arrow is active ..


the search will only evaluate the Group elements of the Name e.g.


    • /Body/Head/Eyes/


If only the Right Facing Arrow is active ..


the search will only evaluate the Object Name e.g.


    • /Pupil_left
    • /Pupil_right


If both arrows are active, the full name is evaluated.


Apart from using the Filter Buttons in the UI, Path Filters can also be set using Variables in the Filter Field, which gives far more nuanced control.

Please look further down on this page in the Expression Filters / Path Search Operators Section for details.




Expression Filters

Entering Expressions and word searches will be the main way you interact with the filter toolbar, to control what Selection Groups are made visible. Expression Filters are executed and updated while typing




Global Filters always run first, before any Expression or Word Search. 



The Search Field maintains a project specific search history that suggests auto-completes while typing.


A completion field will appear while typing, suggesting previous search terms


  • To quickly clear the Search field, press on the "Clear Search Field" Button
  • To remove the search history from a Project SHIFT+Click the "Clear Search Field" Button


Use the "Clear Search" Button to delete a search or clear the Search History


In its most simple form you can use the Filter Bar to search for the occurrence of a specific word within Selection Groups.
Any Group where the word appears, will be be shown in the list view- groups where the word does not appear will be hidden from the list

The Search is always case-insensitive, meaning "wheel" lowercase will match to "Wheel" or "wHEel".


Word Operators:


, (comma)

Use the comma (,) operator to treat word searches as OR.

  • "wheel,roof" .......  will match to any Selection Group containing the words wheel OR roof.

+ (plus)

Use the plus (+) operator to tread word searches as AND


  • "roof+chimney" .......  will match to any Selection Group containing both the words roof AND chimney



! (exclamation mark)

Use an exclamation mark (!) operator to exclude words from the search

  • "!chimney" .......  will match to any Selection Group NOT containing the word chimney

  • "roof+!chimney" ....will match any Selection Group containing the word roof but NOT the word chimney


Word operators can be freely combined into more complex expressions e.g.

roof+!chimney,door-handle


Will match and turn visible:

    • any Selection Group containing the word door
    • any Selection Group containing the word roof - if the Group name does not also contain the word chimney.


Will force any Selection Group to invisible that:

    • contains the word door and handle



Variables can be used to fine tune your search e.g. "$face" filters only for face selection groups directly via the search string, instead of using the Selection Type Buttons.
Each variable can exist in a so called "global Context" or in a "local Context" and can be inverted by prefixing it with an exclamation mark (!).

Global vs Local Variable Context:


$face,wheel,cart,horse

The "$face" type filter is used in separation and will apply to all search words - wheel, cart and horse.

$face,wheel,cart+$patch,horse

The "$face" type filter is used in a global context and applies to the words wheel and horse. The word "cart" has its own local context type filter and is goverend by "$patch"


Available Variables:


$face, !$face

Face Selection Groups, prefix with ! to act inverted as "Except".

  • $face,wheel ........ only groups containing "wheel" that are face selection groups will be shown
  • $face+wheel........ same as above, however the face selection type is applied as a local variable to wheel
  • !$face,wheel........ only groups containing "wheel are are not face selection groups will be shown
  • !$face+wheel .......same as above, however face selection type is applied as a local variable to wheel


Note, that if you only type $face  (and no other words) into the expression field, all face groups will be shown and other selection group types will be hidden. This is a special case where a Selection Group Type Variable can affect other Selection Group Types as well.


$patch, !$patch

Patch Selection Groups, prefix with ! to act inverted as "Except".


  • $patch,wheel ........ only groups containing "wheel" that are patch selection groups will be shown
  • $patch+wheel........ same as above, however the patch selection type is applied as a local variable to wheel
  • !$patch,wheel........ only groups containing "wheel are are not patch selection groups will be shown
  • !$patch+wheel .......same as above, however patch selection type is applied as a local variable to wheel


Note, that if you only type $patch (and no other words) into the expression field, all face groups will be shown and other selection group types will be hidden. This is a special case where a Selection Group Type Variable can affect other Selection Group Types as well.

$obj, !$obj

Object Selection Groups, prefix with ! to act inverted as "Except".


  • $obj,wheel ........ only groups containing "wheel" that are object selection groups will be shown
  • $obj+wheel....... same as above, however the object selection type is applied as a local variable to wheel
  • !$obj,wheel........ only groups containing "wheel are are not object selection groups will be shown
  • !$obj+wheel .......same as above, however object selection type is applied as a local variable to wheel


Note, that if you only type $obj (and no other words) into the expression field, all face groups will be shown and other selection group types will be hidden. This is a special case where a Selection Group Type Variable can affect other Selection Group Types as well.


$vis, !$vis

Only searches within Selection Groups that are already visible in the Selection Group Palette
If it is inverted with a prefixed ! (!$vis) it will search in the invisible Selection Groups.

  • $vis,wheel ........  only searches for the word "wheel" in selection groups that are visible
  • $vis+wheel........  same result as above, however the visibility filter is applied as a local variable to wheel
  • !$vis,wheel ........ only searches for the word "wheel" in selection groups that are invisible
  • !$vis+wheel........ same result as above, however the visibility filter is applied as a local variable to wheel

$invis, !$invis

Only searches within Selection Groups that are already invisible in the Selection Group Palette
If it is inverted with a prefixed ! (!$invis) it will search in the visible Selection Groups.

  • $invis,wheel ........  only searches for the word "wheel" in selection groups that are invisible
  • $invis+wheel........  same result as above, however the visibility filter is applied as a local variable to wheel
  • !$invis,wheel ........ only searches for the word "wheel" in selection groups that are visible
  • !$invis+wheel........ same result as above, however the visibility filter is applied as a local variable to wheel

$inset:SETNAME, 
!$inset:SETNAME

Searches within visible selection groups within the specified Visibility Set.Name
If it is inverted with a prefixed ! (e.g. !$inset:SETNAME) it will search within Selection Groups that are invisible
in the specified Visibility Set,

  • $inset:roof, arm ... 
    only searches for the word "arm" in selection groups that are visible in the visibility set "roof"

  • $inset:roof + arm........  
    same result as above, however the set filter is applied as a local variable to the word "arm"

  • !$inset:roof, arm ... 
    only searches for the word "arm" in selection groups that are invisble in the visibility set "roof"


Path Search Operator can be used to isolate word occurences within a path-style Selection Group Name


  1. /Body/Head/Face/Eyes/EyeLeft
  2. /Body/Head/Face/Eyes/LidLeft


In the above example a search for "eye" would show both Selection Groups. However we want to only view the group that has "eye" in the Object Name "EyeLeft".
To do so we can use Path Variables to isolate parts of the Path to search in. Path Variables can again be used in a global context or in a local context, scoped to a specific word group.



$/, $//,$/// etc.

You can use the $/ (forward slash) variable with any amount of forward slashes to specify the part of the Path Style Selection Group Name to search in.

Each Slash used in the variable corresponds to one slash section in the Selection Group Name


  • $/,eye ... 
    will search each selection group name from its first forward slash to the right. In the case above this means
    the full selection group name will be evaluated.

  • $//,eye ...
    will search each selection group name from its second forward slash to the right. In the cases above this means that the /Body Section will be ignored.

  • $///,eye ...
    will search each selection group name from its third forward slash to the right. In the cases above this means that the /Body/Head/ Section will be ignored.


Add as many slashes as needed to the variable to narrow down a search to a specific part of the path this way



!$/, !$//,!$/// etc.

Using the path search variable with a prefixed ! (exlamation mark) will reverse the counting of slashes, counting from the right side of the name.

  • !$/,eye ... 
    will search each selection group name from its first forward slash to the right. In the case above this means
    we search only in the bold parts:


    1. /Body/Head/Face/Eyes/EyeLeft
    2. /Body/Head/Face/Eyes/LidLeft


  • !$//,eye ... 
    will search each selection group name after its second forward slash to the right. In the case above this means we search only in the bold parts:


    1. /Body/Head/Face/Eyes/EyeLeft
    2. /Body/Head/Face/Eyes/LidLeft


  • !$///,eye ... 
    will search each selection group name after its third forward slash to the right. In the case above this means we search only in the bold parts:


    1. /Body/Head/Face/Eyes/EyeLeft
    2. /Body/Head/Face/Eyes/LidLeft



As with any other variable, the path search can be scoped globally (e.g. "$/,eye,head") or locally to specific
word groups (e.g. "head,$/+eye")






<== Previous Topic: UI Overview