Tutorial: Model a Desktop Fan with Valispace

"Tell Me and I Will Forget; Show Me and I May Remember; Involve Me and I Will Understand."

In this tutorial we'll go through a 20-step example on how to use Valispace's main functionalities to build a simple product yourself: a desktop fan.

desktop fan


Vali - Parameters of components or analyses which can be used in calculations and documentation. A Vali has a numerical value and also contains additional information such as type, unit, formula, description and min/max requirements.

ValiType - A type of a Vali which is used to perform automatic calculations such as "sum of children". A type can be for example Mass, power or flight time.

Component - A model of physical parts of your product that are represented with hierarchical relationships in a component tree.

Analysis - A dynamic document which is used to store reports, engineering budgets and charts.

(1) Create a new Project

Projects allow you to keep multiple projects in one single Valispace deployment.

Create a new Project

  • In the top-left corner, click on the project dropdown menu next to the Valispace logo
  • Verify that you are in the correct workspace. If you are not, select your workspace from below.
  • In the list of projects, scroll down and select + Create new project


  • Enter a unique (not yet existing) project name (e.g. Fan_Stefan) and press Create


  • Now you can see the Dashboard of your project. Navigate to About in the left navigation pane and feel free to add information about your project.


  • At any time, you can always collapse or expand the main navigation pane by clicking on the arrow next to it


(2) Add System Requirements

Most technical developments are designed against strict requirements, e.g. on mass, power consumption, and budget. Valispace maintains the complete overview of whether your design is currently fulfilling all of these requirements or not.

  • Go to the Requirements Module by clicking on Requirements in the left navigation pane.


  • Click on Add Specification and enter Fan_Spec


  • Within your specification, click on + Create Requirement


  • In the pop-up menu, verify that you selected the correct specification, then add an unique identifier, e.g. R-Fan-001 and type The Mass of the fan should not exceed 300g. as requirement text.


  • Create another requirement R-Fan-002 with the information The mass of the blades should not exceed 50g.
  • Click on the 3 dots on the right-hand side top corner of the table and click Edit visible columns


  • Enable Parents and Children
  • Go to the first requirement R-Fan-001 in the table and in the parents column, click on + add requirement
  • Type R-Fan-002 to link both requirements.
  • By clicking on the Connection tab you can see and verify this relationship.


(3) Configure the ValiTypes

ValiTypes ensure that every new component you create already contains Valis of a certain type with a default formula and a unit (e.g. Mass, Power Consumption, etc.)

Ensure that the correct Valitypes exist

  • In the left sidebar, click on your avatar thumbnail on the top, and select to Settings from the drop down.

Avatar Click

  • Click on the Valitypes button in the navigation pane to see all the existing Valitypes available to the project.
  • Now, check whether the following Valitypes exist. To do that, Hover over the Name column header to see the filter option. Click on highlighted filter icon and enter the following filters by Name.
    • Mass
    • PowerConsumption

-If they do not exist, add them by clicking on + button on the top left, below the page heading Valitypes and add the valitypes with the above names. - Change the valitype properties so that your configuration looks like this:
valitype configuration - Make sure that both tick boxes Added by default are ☑ activated. Thereby, these Valitypes will be added automatically to every new components you are creating (see Step 4 in this tutorial)

PowerUserTip: soc() means sum of children and ensures that by default this vali adds up valis which are of the same type in components (1 level) below in the tree

(4) Add Components to your Project

Let's start building your fan! Every product can be broken down into its sub-components like a tree. The hierarchical component tree is one of the core features of Valispace.

Create the Fan

  • The Component Tree with all the components and Valis is created and accessed in the components module. In the left sidebar, click on the Components module. Comp Tab
  • Use Add component button in project navigation pane to create a new component. Name the new component Fan and press Enter. Notice that default valis Mass and PowerConsumption that you configured in Valitypes have been
  • Right click the new Fan component and select Add component. Name the new component Propeller. Expand the Fan component to see the new subcomponent.
  • Repeat to create the components Motor, Speed_controller and Structure as sub components of Fan
  • Your tree should now look like this:
    ![component tr_tree.png)

PowerUserTip: You can drag and drop components in the tree. You can also move components to another project by selecting Move to Project in right-click menu.

(5) Change the Values

In Valispace, Valis are parameters of components which contain your engineering values. Valis have properties such as formulas, values, history and much more. Your newly created components already contains two Valis, Mass and PowerConsumption. So, let's go ahead and put in some values into your Valis!

Change the Mass and the Power Consumption Value

  • For each component “Propeller”, “Motor”, “Speed_controller”, “Structure” you can change the value of Mass and power consumption by clicking on the respective value columns that have0 g or 0 W value.

updated valis

  • Enter new values for the following components
    • Motor Mass = 110 g, PowerConsumption = 1 W
    • Propeller Mass = 30 g, PowerConsumption = 0 W
    • Speed_controller Mass = 15 g, PowerConsumption = 0.1 W
    • Structure Mass = 80 g, PowerConsumption = 0 W
  • See now that Valispace has automatically calculated the fan Mass to be 235g and its PowerConsumption to be 1.1W

PowerUserTip: Please make sure to always use dots (.) as decimal separators for your values.

(6) Add a new Vali

You can always add additional valis you want to track in any component with a formula/value and a unit. You can access Valis in formulas by using the $ symbol in any field.

Add the Propeller Efficiency and Delivered Power

  • Go to the Propeller component
  • Select the + button in the top left under the heading Properties (or the bottom-right) to open Create Property dialog. Select Vali field, type efficiency in the 'Name' field and 0.85 in the Formula field.
  • Leave the unit field empty and click Create add the propeller efficiency

  • Repeat for another Vali with name power_delivered and value/formula $Motor.PowerConsumption*$Propeller.efficiency (a drop-down will appear where you can choose the desired Vali after you start typing the $-sign). Leave the unit field empty to be calculated automatically from the formula or specify the unit W, then click save. The Valis of Propeller should now look like this:
    propeller valis

  • You can click on the arrow on the left of each vali to show the vali description and alter vali specifications, for example- its unit.

PowerUserTip: To access a Vali from a different project in a formula or analysis, just type: $Valiname and click on From other projects

(7) Detail your Design and Re-Use Components

After having made a rough design you can always model your product in more detail. If you have components which are (almost) equal, "connected copies" help you maintain them in sync: if you change a property in one connected component, all others will also be updated.

Create three connected rotor blades

  • Right click on the Propeller component and click Add component to create a sub-component named Blade1
  • After this component has been created, right-click on it and select Copy & connect. A new connected component Blade2 appears on the same level.
  • Repeat the previous step to also generate Blade3:
    connected copy
  • In any one of the three blades, change the Mass to 10 and the PowerConsumption to 0. You can now verify in any of the other blades, that all connected blades now have the same Mass and power consumption.

PowerUserTip: You can disconnect Valis or entire components by clicking on the connection symbol next to its name. More details can be found in the connected copies documentation.

(8) Make use of Margins

At an early development stage you are usually not sure about the exact value of any property. This is why you put a margin on top of the value. Valispace takes care of propagating this uncertainty throughout all your calculations.

Add Margins to your Vali Table Columns

  • In the Vali Table, if the Margin columns are not visible, head over to the menu button (three dots on far right) and click on Edit Visibile Columns.
  • From the list, select Margin+ and Margin-


Add an uncertainty margin to the propeller Mass

  • In the Propeller component, in the Mass row, add a positive margin to the vali, by clicking the plus symbol in the margin column. Enter a value of 10 (meaning a 10% margin). You can also add margins in the vali description by clicking on the respective arrow on the left, in the vali row.
  • Open the description to see how the worst case value is changed to 33g due to addition of the margin. You can also see the the Fan component's Mass now has a total margin of 1.3% and a worst case of 238g. margin

(9) Add Modes

Some values are not static, but depend on the state of the product you are building. This is what modes are for: they track different configurations and their relationships of your product.

Define the modes of your system: different speeds, power modes and ON/OFF-states

  • Our motor can run at 3 discrete speeds which can be modelled by "modes". Therefore, to create these 3 modes, within the Motor component:
    • Click on the Modes tab in the top bar as shown. mode location
    • A modes page would open up. Click on the + button in the top left next to Name column or click on the button at the bottom right to add a new Mode-list.
    • Insert name = speed_settings and ´#´ number of modes = 3
    • click Create.
  • Expand the properties and field names of the modes (by clicking on the arrow next to Vali Name on the left)
  • Rename the speed_settings field names by clicking on the default names a,b and c and change them to:
    • a = ZERO
    • b = LOW
    • c = HIGH
  • Go back to Valis page by clicking on the Properties tab in the top bar alongside Modes.
  • Click on + button to open the 'Create new' dialog and choose Matrix. Add the following properties :
    • Name = rotational_speeds
    • Mode reference = Motor.speed_settings
    • Unit = rpm
    • Click Create
  • Expand the properties of the Vali rotational_speeds and change the values by clicking on the values (which currently are 0). Modify them to the following:
    • ZERO = 0
    • LOW = 2000
    • HIGH = 5000
  • The matrix properties now shall look like this: rpm settings
  • Repeat these steps in order to add a mode for the component Speed_controller with:
    • mode name = power_modes
    • field names = ON and OFF power modes
  • Repeat these steps in order to add a mode for the component Fan with:
    • mode name = state
    • field names OFF, MIN and MAX state

(10) Make Valis Mode-Dependent

Now that you have defined the modes of your system, you can make Valis dependent on them. So a Vali might not always have the same value, but actually a value dependent on a certain mode

Make your power consumptions mode-dependent

  • Open the component Fan and go to the Properties from the top bar.
  • Expand the Vali PowerConsumption to show the vali description.
  • Click on the button Make mode dependent
  • Select mode = Fan.state and confirm with Update.
  • Repeat the same procedure for the Valis PowerConsumption in Motor and Speed_controller by binding them with Motor.speed_settings and Speed_controller.power_modes. Click OK.
  • Change the values of the power consumption of Motor and Speed_controller in the different modes, by clicking on the respective Values under the Values heading according to the following:
    • Motor:
      motor power consumption
    • Speed_controller:
      speed controller power consumption

States of a system can depend on each other. This is why in Valispace you can link modes which belong together

Create a connection between Fan-states and the modes of Motor and the Speed_controller

  • Go to the Fan component
  • Got to the Modes tab from the top bar and expand the mode Fan.state
  • Click on the linking symbol to open Linked Modes
  • Click on Select Mode..., select Speed_controller.power_modes and click Add link
  • Go to the Motor component
  • Repeat the steps for the mode Motor.speed_settings
  • Now select the links between the Modes as follows:
    linked modes

After Valispace has finished its calculations (all on-going calculations can be seen in the Background tasks status in the upper right corner), you can observe that the Fan PowerConsumption has the following values:
fan powerconsumption after mode connection

Change linked Valis to mode-dependent

Valis that are linked to other mode-dependent Valis need to be made mode-dependent as well. Valispace highlights such valis by displaying a warning.

  • Open the Propeller component
  • Since Propeller.power_delivered is linked to a mode-dependent Vali (Motor.PowerConsumption), the warning icon can be seen next to the Vali name. Hover over the warning icon to see the warning.

mode dependency warning

  • Expand the Vali power_delivered and make the Vali mode-dependent (by clicking on the button make mode dependent)
  • Select the mode on which the formula depends, i.e. Motor.speed_settings. You can do this by editing the matrix in Value column.
  • By default, the mode dependent formula will use $ZERO_Motor.PowerConsumption in the default formula for all modes to obtain the delivered power value default_motor
  • You can do this by expanding the power_delivered vali. Look for the matrix of formula representation of mode dependent values and click on the second element of the formula matrix for example, and replace the Vali name ZERO_Motor.PowerConsumption and replacing it with LOW_Motor.PowerConsumption. To do this, after deleting the previous name start typing $ as usual, to reference Valis and select the appropriate one.
  • Correspondingly, change the values of power_delivered by adding the respective formulas:
    • ZERO = $Motor.PowerConsumption.ZERO*$Propeller.efficiency
    • LOW = $Motor.PowerConsumption.LOW*$Propeller.efficiency
    • HIGH = $Motor.PowerConsumption.HIGH*$Propeller.efficiency
  • Now, expanding the vali will give the mode dependent formulae and values that look like this:

mode dependent Vali

(12) Create an Analysis

As an engineer you might have to create Analysis to leverage your engineering data and to document properties of your design.

Add a descriptive Analysis

  • Go to the Analyses module by clicking on the Analyses button in the left sidebar
  • In the project navigation pane, select your project from the top drop-down menu and click on All Analyses
  • Create a new analysis by clicking on the + button in the left-hand corner at the top of the page


  • Name the analysis Power_Analysis and click Create.
  • The analysis consists of blocks of text, images, videos, charts or tables. Click inside the existing block 1. Write heading... and type in Introduction.
  • Click into the second block Write text... to add an introduction text.
  • The analysis content is automatically being saved while you type.

PowerUserTip #2: Click + add group in the left navigation pane to create a group of analysis, in which you can organize your analyses.


(13) Save Text and Formulas as Vali for Re-use

There is nothing worse than a copy-paste text which you have introduced into many Analysis. Once any information changes in that text, you usually now would have to do updates in many places. However in Valispace you can save text, so you can easily re-use it and only have to modify it once.

Create a TextVali from Introduction Text

  • First of all, we need to save the introduction text as a TextVali

    • In any text box, type $ and click on the create new button in the popup:

    convert to textvali

    • Select Textvali
    • For the Name *, choose Intro
    • Copy & Paste the introduction text into the text field
    • Click Create & Insert

    convert to textvali

  • As a result, the text box now contains $Power_analysis.Intro, which can now be used in other analysis as well.

  • The TextVali will be converted back to its text content, when you click outside the block.

convert to textvali

PowerUserTip: To access a Vali in any Analysis, just start typing $ and a dropdown field will appear to auto-complete your selection.

Create a Vali from Room Temperature

  • Click into the existing text box of your analysis.
  • Type $ into the text block and click create new in the popup.
  • Now, select Vali and enter the following properties:
    • Name = room_temperature
    • Formula = 25 (here: the value)
    • Unit = degC
  • Click Create & Insert.

create vali in analysis

Change Vali

  • Hover over the Vali room_temperature
  • Double-click in the following areas to edit the formula (number) and value (unit):

edit vali in analysis

(14) Access Valis in Analysis

One of the main promises of Valispace is that you will not have to do copy-pasting and manual updating of values in your documentation anymore, even if the values of your design change. So, let's use some Valis, which we created in the Components Module, in the Analysis:

Write some text using Valispace placeholders

  • Add a new block to your Analysis by clicking on the faded box Click to add new block at the bottom of the window.
  • Select Text and then Normal text from the drop-down menu.

add block in analysis

  • Add the following sentence in the editor:

When the room temperature reaches $Power_analysis.room_temperature, the fan is turned on at MAX power. The power consumption of the fan is then $Fan.PowerConsumption.MAX.

If you type it instead of copy-pasting it, you will be able to see the auto-complete feature for Valis in action:

vali in analysis

  • Upon clicking outside the block, you will see that Power_analysis.room_temperature and Fan.PowerConsumption.MAX are being replaced by their values. Valispace will always keep them up-to-date for you.

vali in analysis

(15) Add a Pie Chart

Valispace does not only keep track of single data entries, but also allows to add visualisations to the Analysis, which will also be kept up-to-date.

Insert a Mass break-down chart of your fan

  • Choose Click to add new block
  • Select Charts and choose Budget.
  • Click into the new block.
  • Under Name/Caption, type Mass breakdown of the fan
  • In this menu, select Pie Chart from Chart Type.
  • In the field + Add to vali start typing Fan and use the auto-complete to select Fan.Mass. Close.
  • In the Analysis, you can now see the Mass Breakdown of the Fan as a Pie Chart, which will automatically update itself.
  • To adjust the settings of the pie chart, click on the 3 dots in the right-hand top corner of the pie chart and choose Settings

budget chart

PowerUserTip: These graphs will still show the correct distributions, even if you add or delete sub-components in the tree. You can go ahead and try it by adding another subcomponent to the fan, which also has a Mass.

(16) Create an Engineering Budget

Engineering budgets are at the heart of every hardware development: Clearly tracking apportionments of design values for key requirements, such as Mass, power consumption, etc. is now easy and always up to date.

Insert a Power Budget for your Fan

  • Choose Click to add new block
  • Select Tables and choose Budget.
  • Click into the new block.
  • Under Name/Caption, type Power Budget for the Fan.
  • In the field + Add to vali start typing Fan.power and use the auto-complete to select Fan.PowerConsumption.
  • Enable the the show margins and show worst case checkboxes. CLose.
  • With the help of the arrow next to propeller in the table, you can expand or collapse the component tree.
  • If you want to export the table, click the on the 3 dots on the right-hand top corner of the table and choose Export as image to save it on your local machine.


(17) Tags for your Custom Needs

Tags are a multi-purpose tool for your specific team needs. You can use it to mark Valis, Components or Analyses. Use them to indicate the

  • reliability of a value (assumption / calculated / measured)
  • actions for team members (review:Tom / approval:Christine)
  • or any other marking or grouping.

Tag the Mass of the motor as a measured value

  • Go back to the Components Module of Valispace
  • Select the Motor component in the product tree
  • In the row of the Mass, click on the grey text that indicates add tag, type measurement and hit Enter to add the tag to the Motor:


  • If you want to search and filter for this tag, use the search box in the top right navigation bar

(18) Vali Subscriptions

One of the most difficult tasks in an engineering project is to keep track of all the technical changes in the system which affect your discipline. Valispace makes that easy, by allowing you to subscribe to Valis: Whenever a value you subscribed to or an input to this value changes, you get a short notification.

Subscribe and get Notifications

  • Open the component Motor
  • Go to Mass and click on the bell symbol to subscribe to notifications


  • Change the value of Mass from 110 to 120. Click Save.
  • In the top navigation bar, a notification pops up to indicate, that one of the Valis you subscribed to, changed
  • Click on the notification to see details. The change will now be marked as seen.
  • If you wish to see previous changes, expand the Mass Vali and click on the History tab


PowerUserTip: In contrast to subscriptions you could also click on the star next to your Valis to make it appear in your quick access on the start page.

(19) Track your Valis against Requirements

Most technical developments are designed against strict requirements, e.g. on Mass, power consumption, budget, etc. Valispace maintains the complete overview of whether your design is currently fulfilling all of these requirements or not.

  • Open the Components Module and select the Motor
  • Expand the properties of the Motor
  • In the Requirements row, add a max value of 100
  • A warning sign appears next to your Vali indicating the requirement violation
  • Hover over the sign to see details of the requirements violation:


  • Change to value of the Mass Vali to 90 to fulfil the requirements.

  • Go to the Component Fan and switch to the Requirements tab

  • Click + Assign specification and type Fan_Spec to link the requirements to our Fan component
  • In the row of R-Fan-001 under Verficiation Rules click on + Add Rules


  • In the pop-up, select +Add new rule and type $Fan.Mass <= 300 g. Done.


  • Valispace automatically checks for a verification of this rule. The green 1/1 notification indicates, that this requirement has been met.
  • You can also always check the status of all requirements and all rules of the project by opening the Verfication tab in the Requirements Module.

PowerUserTip: The tracking of the requirements also takes defined margins into account. In case your value including margins violates the requirements, the tool will let you know.

(20) Changing Units of Valis

Sometimes you might have to interface with different units. Valispace has integrated functionality to recognise different units and compute correctly regardless of the units chosen.

  • Open the Components Module and select the Motor
  • Change the unit of the Motor Mass from g to kg by clicking on g

Changing a unit

  • Go to the propeller component to verify, that their units remain g

Add more Details

Congratulations, you now know your way around Valispace! Now, it's up to your imagination. Play around with the Valispace software and add more detail to the model.

Some ideas:

  • Add a solar panel component to make the fan portable. You can make the maximum rotational speed dependent on the sun angle of the solar panel.
  • Write some marketing material in Word, using the Valispace Word Plugin to include technical values which are automatically kept up to date with your design.
  • Or how about creating a simulation to calculate the resulting air displacement depending on the fan modes? You can directly access all Valis from Matlab, using the Valispace Matlab Toolbox.

Next Steps?

You want to build something big and awesome? How about giving our Saturn V Tutorial a try to learn about more Valispace features?