Creating Alternative Containers
Valispace allows you to create “Alternatives” to a component to compare how different component options would affect the overall project as in Figure Alternative Container. You can add as many Alternative Components as you wish. This enables you and your team to make educated design decisions throughout your project.
The Alternative Container has its own Valis which automatically map to the corresponding Valis in its selected Alternative Component. If an Alternative Component has a Vali that has not been added to the the Alternative Container that Vali will not be mapped to it. If it has a Vali with the same name, but of a different type, it will not map the value of the Alternative Component’s Vali.
How to create Alternative Containers
As in Figure Creating an Alternative Container:
Right-click on the component in the tree to which you want to convert to an Alternative Container.
Click on “Convert to Alternative Container”.
This will create a copy of the component (which it will be its first available alternative) and then convert the component itself into an Alternative Container.
The alternative container will have a stacked layers icon next to it in the tree (Figure Alternative Container Icon).
Adding Valis to Alternative Containers
Alternative Containers have their own Valis which map to the corresponding Valis in their Alternatives (Components). As illustrated in Figure Alternative Container Logic, if an Alternative has a Vali which does not exist in the Alternative Container, it will not be mapped and will only exist isolated within that Alternative, not automatically propagating up the tree unless explicitly referenced in some other Vali’s “formula” field.
When you add a Property (Vali) to an Alternative Container it will create that property (Vali) in all of its Alternatives that don’t have that Vali, or map the value to the Vali if it exists and is of the correct type. If a Vali of the same name exist, but of a different type, an error box will point this out (Figure Vali Creation Error) and it will not properly map the newly create property in the Alternative Container to the mismatching Vali types in the Alternatives.
To add a property (Vali) or an Alternative (Component) to the Alternative Container, click on the “+” button on the bottom left-hand side of the screen
You will then be presented with the following options as in Figure “Add” Options.
Let’s focus on what each of these options means:
Add properties: This will add Valis to the alternative container and create them in the Alternatives in case they don’t exist, or map to the corresponding Vali of the same name and type. If the user wants to create a Vali only for a single alternative element, the user has to click inside the element and create a Vali inside the component, but if the same Vali doesn’t exist in the Alternative Container, it will not correctly map to it.
Add an existing component as an alternative to this container: this will allow you to add an already existing component within your project as an alternative choice within the container. The component need not be a sub-component of the Alternative Container, it can be stored elsewhere, such as a catalog Component.
Copy an existing component and add it as an alternative to this container: this will allow you to copy an existing component within your project and also add this copy as an alternative in the container. This copy will also now appear in the component tree.
Create an empty alternative and add it to this alternative container: this will allow you to create a new component and add it to the container. This empty alternative will now appear in the component tree and it will not contain any Valis.
Best Practices
BP 1
Before converting a component into an alternative container, it’s best practice to structure the original Component with the Valis that will be common to all the alternatives and only then convert it into an Alternative Container.
Any other Alternatives cna then be quickly created by copying this Component or one of its copies.
BP 2
Note that when you are referencing a Vali from an alternative container, make sure to select the correct Vali that you would like to use in your calculations. For example, if you want to use the battery efficiency in your calculations or “Rules” Verification Method in the Requirements for the “Valicopter__5000” project, when you write the formula and search for the “battery cost”, Valispace gives you result as in Figure Choosing the Correct Vali.
So, in case you would like to use the value of the Alternative Container, i.e., the value of the selected Alternative, you can use the Vali as pointed out in (1). Therefore, whenever the user changes the alternatives from NiCd to LiIon, Valispace automatically recalculates all the calculations and uses the efficiency of the Li-ion battery efficiency.
If you want to calculate a parameter only with a reference to the cost of a specific Alternative, the formula should reference on of the two Valis in (2) instead.
BP 3
To better track the selected Alternatives in your Alternative Containers you can create a Text Vali (Figure Text Vali as Configuration Reference) as a Property of the Alternative Container which can be referenced at a higher level in the Component Tree.
This can be applied to other alternative containers in the Component tree and referenced at the top level Component, thus indicating the current configuration (Figure Configuration Indicator).
BP 4
You can create Alternatives of Alternatives, creating a top level alternative container of a sub-tree that itself has other alternatives containers. This can be used to create and evaluate Several Variants of your system Architecture.
BP 5
Connected Copies of Components can be used as Alternatives, though a user must manually create the connected copy first and then add it to the Alternative Container with the use of the “Add an existing component as an alternative to this container” option, as shown in Figure “Add” Options.
Adding a Connected Copy as an Alternative should only be done in extreme cases and utmost care must be taken to ensure that it doesn’t create a circular loop of interdependent fields.
BP 6
Alternatives do not need to be kept as a sub-Components of the Alternative Container, they can be stored in catalog components somewhere else on the Components tree of the same project.