OpenVSP Design Variables
The guides below will introduce you to OpenVSP Design Variables and how these features can be leveraged to quickly change select model parameters from a single location or automatically load parameter values from a file.

Introduction
Design Variables are a great way of collecting all of the important parameters in your model in a single location so you can quickly alter these settings without having to switch between components and tabs within the windows. You may also save and load Design files to quickly change multiple parameters at once. This is very useful for short, relatively simple trade space explorations that can be scripted.
Working with Design Variables
Adding or removing design variables is very simple. To add a variable, you can choose the Container, Group, and Parm corresponding to the parameter you want and click “Add Variable” or, much easier, you can click on the parameter name in the component window and drag to the Design Variable List. Click on a parameter in the Variable List window to highlight and then click “Delete Variable” to remove it from the list. All stored design variables may be adjusted by slider or text entry under the Adjust tab.
Design Variable Files
Once you have the relevant design variables grouped together, you can save the current state of those variables into a design variable file (*.des) that writes the variable information and current values to a text file. Simply click “Save” under the Pick tab in the Design Variables window to open a dialog to save or overwrite a *.des file. To load a design variable file, click “Load” under the Pick tab and choose a *.des file. Once accepted, the model will update the design variable parameters to the values stored in the design file.
Modifying and Executing Variable Files
You can load a design file directly from the command line with OpenVSP by executing “vsp.exe -des <desfile> <filename.vsp3>” where <desfile> is the name of the design file and <filename.vsp3> is the model with the corresponding parameter IDs. Design files are NOT model agnostic. The parameter IDs for a particular model are saved in the file and will not work with similar parameters on a different model if the IDs are different.
Finding Parameters in the Explorer
The Design Variable explorer is a handy way of finding the Container, Group, and Parm values for parameters that aren’t readily available by click-and-drag in the GUI. For example, the Translate options under the XForm tab don’t have a Parm popup that tells you this information. However, if you search for a component in the Container and the Attach Group, you’ll find a parm called “Trans_Attach_Flag” which controls this setting. You can change the value of this parameter under the Adjust tab and watch the checked box change in the GUI as the model updates to the new value. Not only is this useful for finding “hidden” parameters that you want to add to a Design file but the process may also be used to identify the Container, Group, and Parm values needed to interact with a model via scripts and the OpenVSP API in an automated way.
Avoiding Design Variable Conflicts
You can inadvertently cause a conflict between design variables by choosing inactive or “dead” parameters that don’t have any control over your model or by adding multiple interconnected parameters to the same design variable list. For example, under the Wing Sect tab, if Span, Taper, and Root C are active, all other section planform parameters are deactivated. So just like trying to adjust the Area slider in this scenario, nothing will happen from the design variable window or files. However, if you were to add the Planform Total Area, Total Chord, and Total Span to the list, you’ll find that the values will be based on whichever parameter was changed last. Furthermore, if you try and alter the *.des text file and load values that are in conflict, your model will only update the values of some of the parameters.
One handy way of identifying potential conflicts among parameters is to see which values are updating automatically when you change a given parameter. In the above example with Span, Chord, and Area, you’ll find that adjusting the Area slider will update both Span and Chord automatically to new values. If you see this behavior, avoid adding one of these.
It’s also worth noting that OpenVSP will not iterate until looped variables converge! Conflicting variables will loop through once and stop.