Copies of Components
Copy Function
Component reusability is possible with the use of the Component “Copy” function.
To copy a component and all its Valis, right-click the component and select the "Copy" button as in Video Creating a Component Copy.
A replica of the component with the same name but with a numerical suffix. Once the component is copied, the copy’s name can be changed and it can be moved anywhere within the Components tree in the same Project or to another Project entirely.
Copy & Connect
If you just copy a component (as mentioned above), any modifications made to the original component will not be reflected in the copied component.
By creating Connected Copies a two-way synch will be setup where changes to a Component’s struture and Valis will be reflected in one another.
To create a connected copy, click the "Copy & Connect" button. All changes made to these Components' (properties, Valis, sub-components, etc.) will reflect all of its Connected Copies. Connected Copies can be identified by the added chain icon to the component cube symbol, as in Video Creating Component Connected Copies.
Connected components can be traced through the “Connected Copies” field (2) in the Component’s Info field (1) as in Figure Component Info Tab.
Disconnecting Components and Valis
Components and Valis can be disconnected. For a component, this is done by right-clicking it and subsequently clicking the "Disconnect” option. For a Vali, it is done by clicking the connected symbol on the right side of the screen. Disconnecting specific Valis allows for the creation unique Valis in a connected copy of a Component. All other Valis of the same component will still be connected as in Video Disconnecting Components.
Disconnected Components cannot be reconnected, disconnected Valis can be reconnected as long as their Connected Component remains connected.
To disconnect a Vali in a Component (Video Disconnecting and Reconnecting a Vali) click on the three dot icon in the “Actions” column and click “Disconnect”. To reconnect it follow the same procedure and click on the “Reconnect” option.
The Connected Copy property is not an intrinsic property of Components or Vali, it is its own object accessible through the “/instances/component/” and “instances/vali/” endpoints, respectively. These endpoints will return a list of dictionaries, each a grouping of connected copies.
Connected Copy Logic
The following section is meant as a look-up if you would like to know how Valispace behaves in edge cases before you apply the change.
A short in-depth overview of the connected-copy behaviour for advanced users.
Components:
If you create a copy of a Component, the two Components and all of their Valis are connected
If the Component has child Components, these are also copied and connected
If you disconnect a Component, all of its Valis are also disconnected
Valis:
If the value of a Vali is changed, all connected Valis will be updated with the same value
Self-references (a Vali referencing another Vali of its own connected component) are maintained for connected Valis (they will also reference another Vali of their own component)
Disconnecting Valis:
If a Vali is disconnected, no change is applied to its value
If you had three Valis which were connected and you disconnect one, the other Valis still are connected