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 of how to use Valispace's main functionalities to build a simple product yourself: a deskop fan.

desktop fan

We recommend that before starting with this tutorial you have already completed the initial tour inside your Valispace account.


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) Configure the ValiTypes

ValiTypes will 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 top navigation bar, click on the dropdown menu on the left, next to the navigation pane and go to Settings. Click on the Valitypes button to see all the existing Valitypes.
  • Now, check whether the following Valitypes exist and if they do not exist, add them via clicking on + button at the bottom of the list:
    • Mass
    • PowerConsumption
  • 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 3 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

(2) Add a new Project

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

Create a new Project

  • In the top navigation bar, click on the dropdown menu next to the Valispace logo and select the Components tab.
  • From the Workspace menu, select + Add Project...
    add project
  • Enter a unique (not yet existing) project name (e.g. Fan_Stefan) and press Enter
  • Your new project should now be displayed in the navigation pane on the left-hand side. If it doesn't, click on Workspace tab and select the project by clicking on the circle next to your project to permanently show it in the navigation pane. You can make cross-references between the projects of the selected Workspace. project configuration

PowerUserTip: To access a Vali from a different project in a formula or analysis, just type: $Projectname::Valiname

(3) 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

  • In the sidebar, with your project selected, Use Add component button. Name the new component Fan and press Enter.
  • Right click the new Fan component and select Add component. Name the new component Propeller.
  • Repeat to create the components Motor, Speed_controller and Structure as sub components of Fan
  • Your tree should now look like this:
    component tree

PowerUserTip: You can drag and drop components in the tree, also between projects.

(4) 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 should already contain two Valis, Mass and PowerConsumption. So go 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 0 g or 0 W value beside the name:

updated valis

  • Enter new values for the following components
    • Motor Mass = 110, PowerConsumption = 1
    • Propeller Mass = 30, PowerConsumption = 0
    • Speed_controller Mass = 15, PowerConsumption = 0.1
    • Structure Mass = 80, PowerConsumption = 0
  • 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.

(5) 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 lower right of your screen to open Create new dialog. Select Vali field, type efficiency in the 'Name' field and 0.85 in the Formula field.
  • Leave the unit field empty and click save

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.

(6) 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 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.

(7) 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 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 now observe how the worst case value is changed to 33g. 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

(8) 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 button in the top-right region mode location
    • A modes page would open up. Click on the + button at the bottom right.
    • Insert name = speed_settings and ´#´ number of modes = 3
    • click Create.
  • The modes of the component will now be displayed under Modes and reference frames
  • 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 Vali button in the navigation 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

(9) 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 expand the Vali PowerConsumption
  • 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 with the respective mode created in the previous step for each of the components and 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
  • Under Modes page, expand the mode Fan.state
  • Click on the linking symbol to open Mode Links
  • 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 states 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
  • 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

(11) Create an Analysis

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

Add a descriptive Analysis

  • Go to the Analyses tab by clicking on the top navigation bar i.e. the Components button and selecting Analyses
  • In the left-hand navigation pane, select your project from the top drop-down menu
  • At the bottom of the page, in the right-hand corner, click on the + button to create a new analysis:

add analysis

  • Name the analysis Power_analysis and select the empty template. Click on "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.

(12) Save Text as Vali for Re-use (Create TextVali)

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

Change TextVali

  • Click on the top right convert to textvali button to open Tables of Contents
  • Under References, you will find all Vali's belonging to this analysis
  • Hover over the TextVali $Power_analysis.Intro
  • Double-click into the text to change its content: convert to textvali

  • Press Enter after editing to save the updated value of the Textvali.

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

(13) Save Formula and Numbers for Re-Use (Create Vali)

You will encounter the fact that not all your data necessarily belongs to a component you are modelling and therefore is better suited to be created directly in an analysis.

Create a Vali from Room Temperature

  • From the left-hand navigation pane, click on All Analyses and open your analysis by clicking on it.
  • Click into the existing text box.
  • 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.

create chart

  • Make sure the new block is selected to see the Chart Block Panel on the right-hand side.
  • Under caption, type Mass breakdown of the fan
  • In this menu, select Pie Chart from Chart Type.
  • Start typing Fan in the field + Add to vali and use the auto-complete to select Fan.Mass.
  • In the Analysis, you can now see the Mass Breakdown of the Fan as a Pie Chart, which will automatically update itself.
  • Click inside the empty space on the analysis page to exit the Chart Block Panel.

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.

create budget

  • Make sure the new block is selected to see the Table Block Panel on the right-hand side.
  • Under caption, type Power Budget for the Fan.
  • Start typing Fan.power in the field + Add to vali and use the auto-complete to select Fan.PowerConsumption.
  • Enable the the show margins and show worst case checkboxes.
  • With the help of the arrow next to propeller in the table, you can expand the component tree.
  • Click inside the empty space on the analysis page to exit the Table Block Panel.
  • If you want to copy and export a table, click the copy button on the bottom right corner of the table and paste it into e.g. Excel, Powerpoint or Word.


(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

PowerUserTip: by going to the settings module, you can open the tags configuration. Here you can re-name and assign colours to tags.

configuration button

(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 subscribe button on the right-hand side
  • Change the value of Mass from 110 to 120
  • 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.

PowerUserTip: Clicking on the notification button will mark the change as seen. If you wish to see previous changes, click on History.... A graph of changes made over time will be shown, so you can easily see the trend for Valis you subscribed to.

(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 Mass Vali 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: requirement_violation
  • Change to value of the Mass Vali to 90 to fulfil the requirements.

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.

  • In the same window, 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?