When you model interactively using non-ICE operators, you specify the components to affect by selecting them in the viewports. When modeling procedurally with ICE, you must also specify the components somehow. This is done using the components' indices. You can specify components by explicitly listing their indices, or you can calculate the desired index values procedurally. Many of the topology nodes, like Delete Vertex, allow you to specify component indices as a single integer, an array of integers, or a (possibly filtered) set of integers.
You can specify a single component using the slider in an ICE topology node, or you can specify multiple components by connecting an array. You can create an array with the various array nodes, such as or .
Although explicit indices can be useful when learning ICE modeling, or when developing and debugging compounds, they are very limited. Calculating indices procedurally based on various conditions is much more powerful.
One way to calculate indices procedurally is to filter out those that do not meet one or more conditions. The compound is available in the Conditionals group of the Tasks Topology group in the preset manager, or you can build your own test using any calculation with a Boolean result.
Sometimes you need to switch component types. For example, you perform a test on polygons but you want to modify the associated edges. In that particular case, you can use the PolygonToEdges attribute. This attribute is an array of integers per polygon, containing the indices of its edges. There are similar attributes for converting between all polymesh components: vertex, edge, polygon, and node (polynode).
The nodes in the Topology category on the Tool tab of the preset manager modify the specified components. They perform the same operations as the equivalent non-ICE topology operators. You get a topology (or leave the input unconnected for Self.Topology), connect to a topology node, and set the Topology.
You can also use the compounds in the Modifiers group of the Tasks Topology group. They have built-in options for specifying components, and they have execute-type outputs so they can be connected directly to the ICETree root one after another.