|On this page|
This SOP creates a large number of disjoint groups. This is often a very
inefficient workflow. Instead, consider creating a single string attribute
that stores what would be your group name using Attribute Create or
Attribute Wrangle. If the string attribute you make was named
tag, you can isolate all the elements named
kiwi with the
To convert a set of disjoint groups, such as created by this SOP, into a single string attribute use the Name from Group option of the Name SOP.
The Partition SOP places points and primitives into groups based on a
user-supplied rule. For example, in order to put each point in its own
pt_pointnumber, enter the rule
The rule can be any valid Houdini expression. Rules should evaluate to
valid group names. The result of a rule may be modified to make it a
valid group name (for example a result of
1 will be turned into the
Standard local variables are available as well as local variables created with the Attribute Create SOP.
Variable names ending with
2 refer to the geometry from the second input, if applicable. For example,
PT2 is the current point number from the second input.
The seconds a particle in the template has been alive.
Arc length distance from root in the L-systems.
The surface area of the primitive (created by the Measure SOP).
BBX, BBY, BBZ
The point’s relative position in the bounding box.
Point or vertex alpha value.
CEX, CEY, CEZ
The centroid of the geometry.
COMX, COMY, COMZ
Center of mass.
CR, CG, CB
Diffuse point or vertex color.
Point or vertex crease weight value.
Distance from particle to last collision.
Number of divisions to build the circle swept with Polywire (created by L-systems).
Generation in the L-systems.
The ID of the particle in the input.
The age of the point in the L-system computation.
Percent of total life used (from 0 to 1).
Level of detail.
MAPU, MAPV, MAPW
Point or vertex texture coordinates.
The string name of the current material (the value of the
The number of layers that are considered active for display.
The total number of points in the template geometry.
NX, NY, NZ
The perimeter of the primitive (created by the Measure SOP).
Primitive number & total number of primitives.
The point number of the currently processed point.
RESTX, RESTY, RESTZ
The rest position.
Number of segments to divide a curve up into in Polywire (created by L-systems).
SIZEX, SIZEY, SIZEZ
The size of the bounding box.
Elasticity of a point.
Spring tension of an edge.
TX, TY, TZ
UPX, UPY, UPZ
The vector pointed in the up direction.
Vertex number & total number of vertices.
VX, VY, VZ
Point spline weight.
The width of the curve. Used by mantra for rendering curves & polywire for generating trees.
The X extents of the bounding box of the geometry.
The Y extents of the bounding box of the geometry.
The Z extents of the bounding box of the geometry.
The primitives or points considered for the operation.
The type of the entity specified in the group parameter.
The type of primitives to consider for this operation. Only applicable when Entity is set to Primitives.
The rule with which to evaluate each primitive or point. The result of the rule is the name of the group in which the primitive or point will be placed.
This example demonstrates how to break geometry in a DOPs simulation using the Partition SOP to determine the DOP Objects.
The following examples include this node.
This example shows how to use the Apply Relationship DOP to propagate constraints automatically and create an RBD simulation of a collapsing bridge.
This example uses an RBD projectile to shatter a piece of glass. The glass is made up of simple trangular shards glued together.
This example also demonstrates a situation where using volume based collision detection would not work, and so the objects are treated as infinitely thin surfaces when performing collision detection.
This example uses the ForEach SOP in all three modes (by group, by attribute and by iteration) for you to study and use. You can make any SOP that doesn’t support local variables (like Magnet, for example) behave like one that does using any of the three methods shown here.
This example shows how you can use the foreach sop to apply a lattice to each fragment of a sphere.
This example demonstrates how to use a Meta Expression in an Attribute Create SOP to control how metaballs merge together.