Houdini 22.0 Networks and parameters

Find items in the network editor

How to use the Find dialog to find nodes and other network items.

On this page

How to

To...Do this

Open the find dialog

In the network editor, choose Edit ▸ Find or press ⌃ Ctrl + F or /.

  • Type names or name patterns to search for in the text box at the top of the dialog.

  • Turn on Ignore case to do case-insenstive matches.

  • As you type, matching nodes appear in the table at the bottom of the dialog.

  • Press Enter to select all matching nodes, or use the arrow keys or mouse to double-click a node in the results table.

Add a filter

Click the Add Filter button at the bottom of the query builder, the choose a filter type from the menu.

Mark a filter as required

Click the checkmark icon to the left of the filter row. When a filter row is required, only items that match that row will appear in the results.

or

Add a + character before the filter syntax in the Find field.

Mark a filter as excluded

Click the “circle-slash” icon to the left of the filter row. When a filter row is excluded, any items that match the row will not appear in the results.

or

Add a - character before the filter syntax in the Find field.

Delete a filter

Click the X icon to the right of the filter row.

or

Delete the filter syntax in the Find field.

Change the type of a filter

Click the filter type label at the start of the filter row, then choose a new filter type from the menu.

Show or hide the query builder interface

Click the small arrow to the left of Find.

Tips and notes

  • As you type in the Find field, the query builder updates with filter rows equivalent to the text query. If you edit filter rows in the query builder, the Find field updates with the equivalent text syntax.

  • If all filters are optional (not marked required), the dialog finds items that match any of the filters.

  • If one or more filters are marked as required, the dialog finds items that match all of the required filters, and one or more of the optional filters (if there are any).

  • If all filters are marked as excluded, the dialog finds items that don’t match any of the excluded filters.

Options

In

The path of the network the window is searching in. You can edit this to search a different network.

Ignore case

When this is on, Houdini ignores upper and lower case when matching text, so node will match both node and Node.

Search child networks

When this is on, Houdini searches the network in the In field, and also recursively search all subnetworks in that network. This can add a large number of extra networks to search, so it may slow down searching.

Search locked assets

Normally, the dialog does not search inside locked assets. You can turn this on if you are looking for a node inside a locked asset, otherwise you should leave it off since it will slow down searching.

Only match nodes

When this is on, search only matches nodes. When this is off, the results can also contain network boxes, sticky notes, and subnet inputs.

New window button

Click to open another node search window.

Copy paths button

Copies the paths of selected nodes to the clipboard. If you don’t have any rows selected in the window, this copies the paths of all the matching items.

Selecting row selects item

When this is on, selecting a row in this window also selects the corresponding item in the network. When this is off, selecting rows in the results has no effect on the network selection. You can click Select to manually select the network items corresponding to the selected rows.

Select button

When Selecting rows selects item is off, you can click this button to manually select the network items corresponding to the selected rows.

Select and Close button

When Selecting rows selects item is off, you can click this button to manually select the network items corresponding to the selected rows and then close the search window.

Syntax

General syntax tips

Anywhere you can specify a bare “word”, you can type text in quotes instead. You need to do this if the text would otherwise be interpreted as syntax. For example:

"foo bar"

Parses as a single string containing a space

"@P"

Parses as @P instead of as an unknown field

Item name filter

The default search with out a field is a name pattern.

Note

If the pattern doesn’t start or end with *, the pattern will match anywhere in the name. (This is different from usual Houdini patterns, which must match the entire string.)

foo

Matchs names containing foo.

a*b

Matches names containing an a followed by zero or more characters, then a b.

a?b

Matches names containg an a, then any character, then a b.

a[<chars>]b

Matches names containg an a, then any of the chars inside the sqaure brackets, then a b.

foo*

Matches names that start with foo.

*foo

Matches names that end in foo.

A bare pattern is the same as @name = ‹pattern. The = operator specifies a pattern match. The other operators you can use are:

@name ~= text

A fuzzy match. The letters of the text match with any number of characters between them. For example, abc will match alembic.

@name .= text

A substring match. Matches any name containing the exact text.

Item type filter

See the help for the name filter for more information on text operators and pattern characters.

@type = ‹pattern

Matches the pattern in the node’s internal name (for example attribcreate::2.0) or the node’s human-readable name (for example, Attribute Create).

@sop

Matches any SOP node. The valid @ fields are @obj, @sop, @lop, @cop, @vop, @top, @apex, @asset (matches any node that is a digital asset), @box (matches network boxes), @sticky (matches sticky notes), or @dot (matches network dots).

@sop = ‹pattern

Like @type, matches the node type name, but only matches nodes in a specific category.

@box = ‹pattern

Matches the pattern against a network box’s comment.

@sticky = ‹pattern

Matches the pattern against a sticky note’s text.

Namespace filter

Like the item type filter, but only matches against a node’s namespace. See the help for the name filter for more information on text operators and pattern characters.

@ns

Matches any node with a non-empty namespace.

(Use -@ns to match any node with an empty namespace.)

@ns = ‹pattern

Matches nodes whose namespace string matches the pattern.

“Any text” filter

@all = ‹pattern

Matches the pattern against any of:

  • The item name.

  • The internal node type name (if the item is a node).

  • The human-readable node type name.

  • The node comment.

  • The box comment (if the item is a network box).

  • The sticky note text (if the item is a sticky note).

Because this filter type can end up calling multiple methods on each item, it can be slower than just filtering by node name or type name.

Node flag/state filter

@flag:‹name

Matches nodes with the given flag turned on.

Use -@flag:‹name to match nodes with the flag turned off.

For example, to exclude bypassed nodes from the results, use -@flag:bypass.

The flag names come from hou.nodeFlag, but are case-insenstive. Some common flags to search for are: bypass, display, render, output, or footprint.

The filter also accepts a couple of “pseudo-flags”:

@flag:locked_hda

Matches locked assets. You can find unlocked assets with -@flag:locked_hda.

@flag:verb

Matches SOP nodes whose type has a verb.

Tip

The filter will accept prefixes of flag names, for example @flag:by for @flag:bypass.

Node created/modified time filter

An expression for matching created or modified times has the following general syntax:

@‹field› ‹operator› ‹number› ‹unit

The ‹field› is one of:

@time

Matches created or modified time.

@created

Matches creation time.

@modified

Matches last modification time.

The ‹operator› is one of <, >, <=, or >=. (Since the filter checks whether the node’s time is before or after a certain instant, <= is basically the same as <.)

The ‹unit› is one of:

s (or no unit)

Seconds

h

Hours

m

Minutes

d

Days (24 hours)

(The filter accepts any word that starts with one of these letters. For example, h, hr, hrs, or hours are all equivalent.)

For example:

@created < 10s

Matches nodes created less than 10 seconds ago.

@modified > 5 d

Matches nodes last modified more than 5 days ago.

You can’t specify multiple time units, for example 6h 30m. Instead, use fractional numbers, for example 6.5h.

Parameter filter

See the help for the name filter for more information on text operators and pattern characters.

@parm = ‹pattern

Matches nodes where the contents of any parameter matches the given pattern. This has to check every parameter on every node, so it can be slow. You should specify a parameter name (see below) whenever possible.

@parm:‹name_pattern› = ‹pattern

Matches nodes where a parameter whose internal name or label matches ‹name_pattern› has contents matching pattern.

For exmaple, @parm:vexpression = "@P" finds any nodes whether the VEXpression parameter contains @P.

Note

This filter matches against the “raw” parameter contents (the expression or literal text value), not the evaluated numeric value. Filtering by evaluated values would be useful, but would require cooking every node and would potentially be very slow.

Message/comment filter

See the help for the name filter for more information on text operators and pattern characters.

@error

Matches any node with an error.

You can also use @warning or @message to match warnings or messages instead of errors.

@error = ‹pattern

Matches any node with an error that matches the pattern.

You can also use @warning = ‹pattern or @message = ‹pattern to match warnings or messages instead of errors.

@comment

Matches any node with a non-empty comment string.

@comment = ‹pattern

Matches any node with a comment string matching the pattern.

Version filter

This filter compares version numbers numerically, rather than as text. You can use it to find node types with versions less than, greater than, or equal to some specified version.

The general syntax is:

@version ‹operator› ‹version

The operator can be <, >, <=, =<, >=, =>, =, ==, or !=

For example:

@version < 3

Matches nodes whose node type has a version number less than 3 (for example, 2.9.9).

@version >= 2.5.3

Matches nodes whose node type has a version number greater than or equal to 2.5.3 (for example, 2.5.4).

You can also use the special form:

@version = *

Matches any node where the node type name has a non-empty version.

(Use -@version = * to match node types with an empty version)

User data filter

See the help for the name filter for more information on text operators and pattern characters.

@userdata:‹key

Matches any node whose user data dictionary has the given key.

@userdata:‹key› = ‹pattern

Matches any node whose user data dictionary has the given key and the value for that key matches the pattern.

Note

The key string must be exact, it does not use pattern matching.

Parameter tag filter

This type lets you search for nodes that have parameters with certain parameter tags or parameter tag values.

@parmtag

Matches any node with a parameter tag on any parameter. Practically all parameters have tags so this is not very useful.

@parmtag = ‹pattern

Matches any node that has a parameter with a tag value matching ‹pattern›.

@parmtag:‹tag

Matches any node that has a parameter with a tag name matching the ‹tag› pattern.

@parmtag:‹tag› = ‹pattern

Matches any node that has a parameter with a tag where the tag name matches the ‹tag› pattern and the tag value matches ‹pattern›.

Tip

If you need to match special characters such as : in the tag name, you need to quote the tag pattern. For example:

@parmtag:'sidefx::*' = foo

Script filter

Text between backticks is interpreted as a Python expression. The filter matches items for which the expression returns True.

For example:

`isinstance(item, hou.LopNode) and item.isMostRecentStageLock()`

APEX tags filter

@apextag = ‹pattern

Matches any APEX node with a tag matching the pattern.

Networks and parameters

Networks

  • Network editor

    How to create, move, copy, and edit nodes.

  • Network navigation

    How to move around the networks and move between networks.

  • Connecting (wiring) nodes

    How to connect nodes to each other to make them work together.

  • Network types and node flags

    Flags represent some state information on the node, such as which node represents the output of the network. Different network types have different flags.

  • Badges

    Badges indicate some status information about a node. They usually appear as a row of icons below the name of the node.

  • Node Info

    The node info window shows a quick overview of statistics and information about a particular node.

  • Find items in the network editor

    How to use the Find dialog to find nodes and other network items.

Editing parameters

Next steps

Expressions

Recipes

Reference

Guru level