Managing Exposed Ports

 
 
 

You can manage ports by right-clicking on them in the areas on either side while editing a compound.

Naming Ports

To re-name an exposed port, open the compound for editing and do one of the following:

  • Double-click on it in the area at either side and type a new name.

  • Right-click on it, choose Rename, and type a new name.

  • Right-click on it, choose Properties, and enter a new string in the Name box.

Moving Ports

To move an exposed port, right-click on it in the area at either side and choose Move Up or Move Down.

Grouping Ports in the Layout

Port layout groups appear as expandable/collapsible lists on nodes, and as grouped parameters in property editors.

To create a port layout group:

  1. Open the compound for editing.

  2. Right-click on an input port in the area on the left.

  3. Choose Properties.

  4. Enter a name in the Group box.

    Ports with the same group name get grouped together.

The collapsed or exposed state of port layout groups is saved when you export a compound, and used by default when you create a new instance.

Defining Multi-Instance Input Ports

You can define ports that allow multiple instances, like the Add node or Add Forces compound. Compounds with a port defined in this way show a virtual port labelled "New (portname)". You can use these virtual ports to connect an arbitrary number of inputs. This is useful when you want to add an arbitrary number of items, allow for an arbitrary number of geometry inputs, and so on.

To define multi-instance input ports

  1. Right-click on an exposed port in the area at left and choose Properties.

  2. Set a value for Expose Type:

    • Single. This acts as an ordinary input port and allows only a single connection.

    • Multi - Connect New Ports to Existing Node. This allows multiple connections, and connects them all to the same node as the first one. The input port on the node to which the exposed port is connected must support multiple instances, like the Value port of an Add node.

         

      The new port Force2 is directly connected to the same Add node as Force1.

    • Multi - Connect New Ports Through New Node (copy values). This allows multiple connections, and connects them to the same node through a copy of a node on the first exposed instance. There can be only one node between the exposed port and the input port that supports multiple instances — if you require more complex connections, you can embed them in a single compound between the exposed port and the multi-instance input.

         

      The new port Force2 is connected to the Add node through a copy of the Multiply by Scalar node. In this picture, nodes have been rearranged for clarity.

    • Multi - Connect New Ports Through New Node (default values). This is similar to the previous option, but instead of copying the node between the exposed port and the multi-instance input, it imports a fresh instance of the intervening node using its default values. If you are using a compound between the exposed port and the multi-instance input, that compound must have been exported.

Multi-Instance Port Groups

If two or more exposed ports are connected to the same multi-instance input and they both have Expose Type set to either Multi - Connect New Ports Through New Node (copy values) or (default values), they form a port group. Connecting an input to any one of the New virtual ports creates a new instance of all of them.

   

Connecting to either New (Force1) or New (Factor1) creates both Force2 and Factor2. In this picture, nodes have been rearranged for clarity.

Setting Minimum and Maximum Values

You can define minimum and maximum values for scalar and integer ports.

To define minimum and maximum values

  1. Right-click on an exposed port in the area at left and choose Properties.

  2. Set the Min and Max values.

Setting the Picking String

The Picking string for operator is used as a prompt in the mouse line when applying a compound using the ApplyICEOp command. It is useful for picking scene reference inputs, such as with the Footprints compound. For more information about applying compounds, see Applying ICE Compounds.

Setting Predefined Values

Instead of sliders or numeric inputs for integers and scalars, you can predefine values like Slow, Medium, and Fast. Users can select these values from a menu box in your compound's property editor. This is particularly useful when using the Select Case node to execute different parts of a tree based on a chosen integer value.

NoteIt is still possible to set different values by connecting to the port instead of using the menu box in the property editor.

To predefine values

  1. Right-click on an exposed port in the area at left and choose Properties.

  2. Enter a Combo string and a corresponding Combo value.

  3. Click Add combo.

  4. Repeat to predefine additional values. The values defined so far are shown in the table.

To change predefined values

  • In the table, double-click on the cell you want to change and then enter a new string or value.

To remove predefined values

  1. In the table, click anywhere in the row of the value you want to remove.

  2. Click Remove combo.

Locking Values

You cannot lock values in compounds. If you don't want users to change a value easily, don't expose its port.