1. Connect the “main” stage line to the node’s first input.
2. Set the **Primitive path** to the path of the primitive you want to add the variant to, and the name of the **Variant set** to add the variant to on the primitive.
**This node will create a primitive at the given path(s) and any parent prims if they don’t exist**. The **Primitive kind** and **Parent primitive type** parameters control what type of primitives to create in this case.
Optionally, you can supply an explicit list of space separated primitive paths to **Primitive path**, or a prim pattern pointing to existing prims on the stage, to add the variant to multiple primitives.
3. Connect a stage containing the variant primitive you want to add to the second multi-input.
Often, this “variant” input will not be a “full” stage, but just the result of importing geometry from a SOP network or from disk into USD.
If the primitive branch you want to use as a variant already exists on the “main” stage, you can connect the “main” stage line to both the first and second inputs.
4. Set the **Variant path** to the path to the primitive that defines the variant you will add. (This path is in the scene graph tree of the second input.)
5. In the table at the bottom of the parameter editor, double-click the right column next to the input node to and enter the name for this variant in the variant set.
(If you don’t specify a name, one is computed automatically using the expression in the **Variant name default** parameter.)
The variant copied from the second input into the variant set includes the primitive you point to in **Variant path** _and all its descendants_.
Note
- You can repeat the last three steps to add more variants to the given variant set. This only works if the **Variant path** is the same in each variant input.
- The layers of the stage connected to the second input are always “flattened” into a single layer to allow copying all the information defining the variant into the active layer.
- The contents of the flattened layer are completely unchanged by the copy operation, so defined primitives will be defined inside the variant, and `over` primitives will be `over` primitives inside the variant.