int|string uniqueval(<geometry>geometry, string attribclass, string attribute_name, int which)
If any points/primitives/vertices in the geometry have the same value for the given attribute, the set of unique values will be smaller than the total number of points/primitives/vertices. This function lets you iterate through the set of unique values.
This function only works with string and integer attributes.
<geometry>
When running in the context of a node (such as a wrangle SOP), this argument can be an integer representing the input number (starting at 0) to read the geometry from.
Alternatively, the argument can be a string specifying a geometry file (for example, a .bgeo
) to read from. When running inside Houdini, this can be an op:/path/to/sop
reference.
attribclass
One of "detail"
(or "global"
), "point"
, "prim"
, or "vertex"
.
attribute_name
The name of the attribute to read.
which
Which one of the unique values to return. Use nuniqueval to get how many unique values the attribute has.
Examples ¶
Iterate through the unique values of the @foo
point string attribute
int count = nuniqueval(0, "point", "foo"); for (int i = 0; i < count; i++) { string val = uniqueval(0, "point", "foo", i); // ...do something with the value... }
See also | |
attrib |
|
search |