Houdini 20.0 Nodes Geometry nodes

Group geometry node

Generates groups of points, primitives, edges, or vertices according to various criteria.

On this page
Since 16.0

Overview

Elements can occur in more than one group. Groups are used in many parts of the Parameter Editor to specify which portions of input geometry you wish an operator to act upon.

You can also create ordered groups. To do so, enable the Ordered checkbox.

This operator is very powerful and is ideal for combining geometry that is similar. For example, all the primitive geometry of a group of door structures for a three-dimensional architectural model could be grouped together and consequently scaled and re-sized together using a Transform node. Works in conjunction with most filter nodes.

Group name specifiers become very powerful when you use pattern matching in your group specifiers.

Using Group Geometry

  1. Select the points, primitives, edges, or vertices you want to group.

  2. Click the Group Geometry tool on the Model tab of the shelf.

  3. Enter a Group Name in the operation controls toolbar or the parameter editor.

Tip

When using the hotkeys to select edges to group, press ⇥ Tab once the selection is complete (instead of Enter), and select the Group Geometry operation in the tab menu.

Creating groups based on point attributes

You can create groups based on point/primitive attributes using the Base Group tab and group specification syntax.

For example, to create a group containing all points with Y position greater than 0:

  1. In the parameter editor for the Group node, click the Base Group tab.

  2. In the Base Group field (below Base Group), set value to @P.y>0

In this example, P is the name of the position vector attribute, .y takes the Y component of the vector, and >0 selects points where the component is greater than 0. See the @ group specification syntax for more information. Note that the @ syntax does not allow spaces.

Inputs

Source geometry

The geometry on which to create the groups.

Bounding object

Bounding geometry. (Only works for point or vertex groups when selecting by bounding geometry.)

Accepts all geometry.

Parameters

Group Name

The name of the group to create.

Group Type

Whether to create a primitive, point, edge, or vertex group.

Initial Merge

How to resolve collisions between the newly created group with an already existing group.

Replace Existing

The newly created group will replace the existing group.

Union With Existing

The group will consist of the union between the newly created group and the already existing group.

Intersect With Existing

The group will consist of the intersection between the newly created group and the already existing group.

Subtract From Existing

The group will consist of the contents of the already existing group that are not also in the newly created group.

Base Group

Enable

Enables grouping by pattern.

Base Group

Enter the pattern to be grouped. This handles normal adhoc group syntax.

Create Ordered

Orders the points/primitives in the group in the order they are entered. Useful when skinning.

Geometry Type

What sort of primitives to allow in the group.

Keep in Bounding Regions

Enable

Enable grouping by bounding volume.

Bounding Type

Shape of bounding volume.

Bounding Box

Group by an axis aligned bounding box, specified either directly or by the second input.

Bounding Sphere

Group by a sphere, either specified directly or by the second input.

Bounding Object

Group points depending if they are inside the second input. Inside is determined with the alternating rule. Rays are sent and the number of intersections computed - if the result is odd, the point is considered inside. Because the rays are sent in a specific set of directions, if the geometry has holes you may get leaks that vary with the orientation.

Bounding Volume

Group points depending if they are inside the second input’s volumes or VDBs. This is determined by evaluating each volume or VDB at the point position and comparing with the isovalue. If the point is inside an odd number of volume or vdbs, it is considered to be inside.

Bounding Convex Hull

Group points depending if they are in the convex hull of the points of the second input. This can be offset outwards or inwards using the iso offset. The pscale attribute is also used to determine the effective size of points. If their sphere is fully inside, they are considered to be inside. The Include Partially Contained Entities can be used to instead consider them inside if they at all touch the convex hull.

Size

Size of bounding volume.

Center

Center of bounding volume.

Initialize to Input Bounds

Set the Size and Center of the bounding box to the bounding box of the elements specified in Base Group or the full geometry if disabled.

Iso

The iso surface of volume to do the grouping with. Points whose volume value are less than this will be grouped. A value of 0 is good for SDF volumes. For fog volumes, use a value of 0.5 and turn on Invert Volumes for best results.

Invert Volume

Inverts sense of being inside the volume.

Include Partially Contained Entities

When grouping primitives, include primitives that have at least one point in the bounding object. When grouping edges, include edges that have either point in the bounding object, or are intersecting the bounding object.

Keep by Normal

Enable

Enable grouping by normal. This is not yet supported for vertex groups.

Backface from

Groups primitives facing away from this object.

Note

Unlike grouping by normal this operation will remove items that satisfy the backface condition from any group created via another tab. If no other group is created, this operation will add satisfying items.

Non-Planar Polys

Groups polygons that are non-planar given the tolerance.

Note

Polygons that are non-planar will be added to the group regardless of the other tabs.

Direction

Normal direction to group by.

Spread Angle

Deviation from the direction to allow in the group.

Include Normals Matching Opposite Direction

Whether to include elements whose normals are within the Spread Angle of the opposite of the Direction vector.

Include by Edges

Note

Points, primitives, and edges that match the edge grouping rules will be in the final group regardless of the other tabs.

Enable

Enables edge grouping. This is not yet supported for vertex groups.

Min Edge Angle

Groups primitives with at least this angle between their normals. For edge groups, an edge is included in the group if the two primitives that share it satisfy this angle requirement.

Max Edge Angle

Groups primitives with at most this angle between their normals. For edge groups, an edge is included in the group if the two primitives that share it satisfy this angle requirement.

Edge Angle Uses Angle Between Edges

For edge groups only, when this option is checked edges are included in the group based on the angle between themselves, instead of the angle between the primitives that share them.

Each edge is compared against all other edges that share a point with it.

Min Edge Length

Groups edges that have at least this length.

Max Edge Length

Groups edges that have at most this length.

Edge Depth

Number of edges away from the points in Point Group.

Point Group

Points around which group is centered.

Unshared Edges

Groups all points/primitives/edges with unshared edges. For edge groups, an edge is added to the group if it only has one primitive adjacent to it.

Create Boundary Groups

Create groups containing surface boundary points.

Keep by Random Chance

Enable

Enables grouping by random chance.

Global Seed

The initial seed used to determine which elements are included in the group.

Use Seed Attribute

Whether to use an integer attribute on the specified elements that is used in place of the element number when determining whether an element is included in the group.

Seed Attribute

An integer attribute on the specified elements that is used in place of the element number when determining whether an element is included in the group. For edges, the point numbers or the attribute value on both points is combined and used to determine the seed for each edge. For vertices, the point number or attribute value on the point that the vertex belongs to is used to determine the seed for each vertex.

Percent

The approximate fraction of elements to include in the resulting group. The Global Seed is combined with the Seed Attribute or element number if Use Seed Attribute is disabled, to determine a seed value for each element. This seed value is then used to find a value between 0 and 100 for each element, and any element with a value less than or equal to the Percent is included in the group.

See also

Geometry nodes