How to use the Workflow Builder

Wire blocks, fill in the settings, download one Python file. Every demo on this page is the real Builder, running live in your browser. Press Pause on one to try it yourself.

The short version

  1. Wire blocks

    Drag model, run, loop, check and result blocks onto the canvas and connect them in the order PSCAD should run them.

  2. Fill in the settings

    Component definitions, parameters such as R or TF, channel names, limits and file names. Choices are limited to what fits the block.

  3. Download and run

    Download gives a .zip with one .py script. It drives PSCAD from Python 3.7 or newer with mhi-pscad installed, and saves results tables and graphs to a folder.

Nothing is uploaded. The page runs in your browser, and the script runs on your own computer against your own case.

The screen

The canvas fills the page and four things float over it. Select a part in the list to see where it is.

  1. Toolbar

    Undo and redo, zoom, Fit view, Quick start, save, open, clear the canvas and Download. Its button shows how many problems are left.

  2. Blocks panel

    Every step a workflow can take, in categories, with a search box. Click a block or drag it out. Drag the title bar to move the panel, or use the chevron to fold it.

  3. Canvas

    Your workflow, read left to right. Every workflow begins at the Start block, which is always there. Near the bottom: a minimap and the Wire colours key.

  4. Settings, Python and Problems

    Settings of the selected block, the Python script as it is written, and Problems, the list of what still needs fixing.

Top right, Tour replays a one minute walk through a worked example, and Guide opens this page. Other Tools leaves for the rest of the site.

Add a block

Search, then click a block to add it after the selected one, or drag it where you want it. Start is greyed in the panel because it is already on the canvas.

On a phone, press Full screen under a demo and turn the phone sideways to read it.

Blocks panel and canvas
  1. Search

    Type a word such as run simulation. The search looks at titles, keywords and descriptions.

  2. Click to add

    The block goes after the selected block (or the last one added), already wired to it.

  3. Or drag

    Drop it anywhere on the canvas. Dropped on a flow wire, it goes between the two steps.

Wires and ports

Blocks connect through ports. Drag from a port on one block to a port on another. Only ports that fit will connect.

Flow wire, then data wire
  1. Flow wire

    A thick wire with an arrow: then do this. It runs from a block's flow output, such as Reached the end, to the next block.

  2. Data wire

    A thin coloured wire: use this value. It runs from a value output, such as Peak, into an input of another block.

  3. Wire colours

    The colour is the kind of value: number, text, list, time series, component and so on.

  • Unwired flow output. The path ends there. A block says so on its card, for example ends the workflow or skips to the next pass, so no extra block is needed.
  • Drop a wire on empty canvas. A short list opens with only the blocks that fit that wire.
  • +N more. A block shows its main ports and the wired ones. This button on its card shows the rest.

Loops

A loop block repeats whatever is wired to its Each pass output, once per number, item, layer, substitution set, scenario or component. What is wired to After all passes runs once, when the loop is done.

For a range of numbers
  1. Add the loop

    For a range of numbers repeats from First to Last in steps. Its Value output is the number of the pass.

  2. Fill Each pass

    New blocks join Each pass. A dashed frame named after the loop shows what is inside it.

  3. Drag from After all passes

    Release on empty canvas to open the list of blocks that fit.

  4. Pick the next step

    It runs once, after the last pass.

  • A pass that cannot finish. If a flow output such as Stopped early is not wired on, that pass ends and the loop goes to the next one.
  • Layers and substitution sets. For each layer and For each substitution set work the same way: one network arrangement or one parameter set on each pass.

Settings and problems

Select a block to change its settings. A setting that must be filled in is marked Required. The block shows To do until it is, and the Download button counts what is left.

Settings and Problems
  1. See what is missing

    The Problems tab lists to-dos, errors and warnings. Click one to jump to its block.

  2. Select a block

    Its settings open in the Settings tab. Select nothing to see the whole workflow's settings.

  3. Fill in what is required

    On Start, type the PSCAD case: a .pscx path, or the name of a case already in the workspace.

  4. Choose from what fits

    Pick the component's definition, then its Name. The parameter box suggests that definition's parameters, with their units.

  5. Nothing left to do

    The Download button loses its count. Until then, the script stops before it connects to PSCAD.

  • Only what can be chosen. A setting appears only where it can change the script, and a list leaves out options that cannot apply.
  • Parameter names. The i beside a parameter opens the component reference for that definition: every parameter, with its unit, default and the symbols a Choice takes.
  • Pin. The pin beside a setting puts it at the top of the Python file, in its SETTINGS section, to change later without the Builder.

Rename a block

Give a block the name you would use for it. The name shows on the canvas, in the Problems list and in the comments of the script.

Double-click a block's name
  1. Double-click the name

    The title on the block turns into a text box.

  2. Type, then press Enter

    Escape keeps the old name.

  3. Or use Settings

    The same name is in Name on the canvas, the first setting of every block.

Quick start

Ten worked examples to start from: build the case and report its errors, fault ride through over fault durations, sweep one parameter, harmonics and THD, the critical clearing time, every network arrangement held in a layer, initialise once then branch from a snapshot, a run for each substitution set, several cases at once in a simulation set, and the damping of a ringdown. An empty canvas offers the same list on its Start a workflow card, next to Start blank.

Fault ride through
  1. Open Quick start

    It is in the toolbar. Hover an example to read what it does.

  2. Pick an example

    It replaces the canvas as one undo step, and a message offers Undo. The Builder asks first if you have unsaved work.

  • Then make it yours. Type your case on Start, and change the component Names, channel names, limits and table names to fit your model.
  • Want the method behind an example? The Python study guides explain each study, show the Python the Builder writes for it and open its Quick start in one click.

Results tables and graphs

Results blocks collect values as the workflow runs. Tables are saved when the run ends, graphs are drawn to image files. Both land in the run folder.

Fault ride through
  1. Add row to results table

    One row per pass: the loop values, then one column per wired value. Rows with the same table name go into one table and one file.

  2. Draw a graph

    Time series, 2D, 3D, heat map, from a results table, or a convergence curve. The block draws a preview from your names and mock values.

  • Skipped passes stay visible. A pass that ends early still gets a row, with the reason in a Status column.
  • File format. On Start, Save the results tables as offers CSV (opens in Excel), Excel (.xlsx) or both. Save results table saves one partway, under another name.
  • One look for every graph. With nothing selected, Graph style in Settings opens templates, from the Adjie Brotools style to IEEE, Elsevier and slides.

Save, open and download

The Builder keeps your workflow in this browser between visits. Save and Download make files you own.

Save, Python tab, Download
  1. Save

    Writes the workflow as a .json file. Open reads it back. It also opens a .py made here, or a file dropped on the canvas.

  2. Read the Python

    The Python tab is written as you build. Copy it, or save only the script with .py.

  3. Download

    Saves the study package as one .zip, ready to unpack and run.

What is in the zip

  • name.py the script
  • name.json the workflow, for the Open button
  • any data file you attached, beside the script
  • fonts/ DM Sans, when graphs use it
  • README.txt how to run it

The bin in the toolbar clears the canvas. It asks first, and Undo brings the work back.

Run the script

  1. Unpack the zip

    Keep the files together: the script looks for its data files next to itself.

  2. Install the Automation Library

    Once, into the Python you run the script with: py -3.12 -m pip install mhi-pscad. Any Python 3.7 or newer will do; the script checks for what it needs and says which pip line is missing.

  3. Choose how it finds PSCAD

    Automatic in Start's How to run setting uses the PSCAD that is open, starts one when none is, and uses the host PSCAD when the script is run from inside it. PSCAD needs its licence certificate before a run will start.

  4. Collect the results

    Each run writes its tables, graphs and run.log to a new folder beside the script, or inside the Output folder you set on Start.

py -3.12 "name.py"

To change a value later, edit the SETTINGS section at the top of the .py. To change the workflow, open the .json, or the .py itself, in the Builder.

Shortcuts

  • Ctrl Z undo
  • Ctrl Y redo
  • Ctrl C V copy and paste blocks
  • Ctrl D duplicate
  • Ctrl A select every block
  • Delete remove the selection
  • Esc clear the selection

✨ Use it in your AI

Install this tool's skill in Claude, ChatGPT or Grok and ask in plain words. Your AI lists your inputs and its assumptions and sends one link that opens the tool on your scenario.

Get the skill

Ready to build one?

Or read on: the Python study guides and the component reference.

Open Builder