Skip to content

Import legacy models and Visio drawings

File ▸ Import brings a model made somewhere else into ProcessModel: a model package from the earlier version, or a Visio drawing. You choose one file, the window reads it at once, and a report lists what it found, and what was changed or is missing, before anything is added to the canvas.

The Import window as it opens: the explanation, a Choose package or drawing button with Nothing chosen beside it, and Cancel and a dimmed Import button along the bottom.
Figure 1. The Import window as it opens.
  1. Start a new model with File ▸ New, so the canvas is empty.
  2. Open File ▸ Import.
  3. Press Choose package or drawing and pick your file. The file window offers model packages and Visio drawings only.
  4. Read the report. The window shows it as soon as the file is chosen, and it differs for a package and for a drawing. Both are described below.
  5. Press Import. The window closes and the model opens as a new model that is not saved yet. A message confirms it, for example Imported Hearing.
The File menu open under the title bar, with Import highlighted. Import Recipe is the next entry, then Save, Save As, Print, Demo Models, Recent Models, Save trace as, Open Simulation Trace and Backups.
Figure 2. The File menu: Import, with Import Recipe below it.

An import replaces what is open, so it only runs on an empty canvas. If a model is open when you choose a file, nothing is read and Import stays dimmed. The window says why:

The Import window with the drawing Order Fulfillment.vsdx chosen and a note under it that reads An import brings in a whole model and replaces what is open, so it needs an empty canvas. Close this window and start a new model first, then import. The Import button is dimmed.
Figure 3. A file is chosen while a model is open: nothing is read, and Import stays dimmed.

The window opens with an explanation, one button, and a line that says which file is chosen. The explanation reads:

You can import a model package from the earlier version or a Visio drawing. A package is converted exactly, and everything changed to fit this version is listed before it is added. A drawing brings its steps, their names and routes as drawn, and what it does not hold is listed before it is added.

  • Choose package or drawing picks either kind. Nothing chosen shows beside it until a file is picked, and the file’s name takes its place afterwards.
  • The file you choose decides what the window shows next.
  • Import stays dimmed until a file has been read.
  • Cancel, the close button at the top right and Esc close the window without importing anything. A click outside the window does nothing, so a stray click cannot cost you a converted model.
  • Help, at the top, opens this page in your browser.

Packages use the .spg extension. A package holds the model, its working-hours files and sometimes a companion spreadsheet, so nothing else is asked for. Every other file is found inside it, and anything the model names that the package does not hold is reported rather than chased. If a package holds more than one model, the largest is used.

A package is converted exactly, so the same package always produces the same model. It is converted as soon as you choose it, and the window widens to show the report.

The Import window with the package Hearing.spg chosen: eight counts across the top, then the sections Recovered from the package, Adapted for this version, and Busiest resource, worked out before running.
Figure 4. A package is chosen: the report lists what was recovered and what was adapted before anything is added.

Across the top are eight counts: Steps, Buffers, Resources, Items, Routes, Arrivals, Schedules and Scenarios. Steps are the activities of the model and Items are its entities. Under the counts come the sections below, and each one appears only when it has something to say.

SectionWhat it tells you
Recovered from the packageThe model read in full, and how many objects were placed where the original had them. The working-hours files decoded into real schedules. The size of any appointment books. Files in the package that were not used, by name. A spreadsheet in the package, which is used for cross-checking only: the model file wins on any disagreement.
Named by the model but not in the packageFiles the model names that the package does not hold, and working-hours files that could not be recovered.
Adapted for this versionEverything changed to fit this version, with the number of changes in parentheses. Each kind of change is one line, and a change that happens many times is one line that starts with how many. One more line counts the changes made to step instructions.
Scenario settings not carriedScenario settings that could not be carried, each with its reason. A scenario can only change a step, a buffer or a resource, so a setting that is used on a connection, or that nothing uses, stays out. A scenario that would change nothing is listed too, and up to six lines are shown.
Busiest resource, worked out before runningThe resource carrying the heaviest load, as a percentage of its available hours, worked out before anything is run. It shows in amber when the work is more than the hours allow. A note says when the figure is a floor, because some steps are reached only when a condition holds.
Worth knowingWhat will affect how the model runs. When a package has stores, a note says they came across as queues, and that a queue holding thousands of items at once runs slower.

Each line carries a mark: a green check for what was read in full, a blue information mark for something worth knowing, and an amber warning for something that was lost or needs a second look. When the report is longer than the window shows, it scrolls.

When you press Import, the model keeps its own name and the places its shapes had.

Most of a model comes across cleanly and is ready to run:

  • Entities and activities, with their positions on the canvas preserved.
  • Storages, which become buffers and queues.
  • Resources, including hourly cost.
  • All routing: percentage, conditional, create, attach, detach, renege, and alternate.
  • All arrival types: continuous, periodic, scheduled, daily pattern, and ordered (reorder).
  • Attributes, including enumerated attributes, which become text.
  • Variables.
  • Scenario settings, resolved to their values, and any named scenarios, which are imported turned off.
  • Run length.
  • Shift schedules, including breaks, split shifts, and overnight shifts.
  • Distributions and action logic.

A few things need your eye once the model is on the canvas:

  • Else routes. The connection taken when no other condition holds has no equivalent in this version, so it arrives as an ordinary route and may need a condition of its own.
  • Batching. A step that gathers a number at a time keeps that setting, carried across for review. This version batches with a dedicated batching step, so it is not rebuilt for you.
  • Costs. A resource’s hourly cost comes across. Every other cost comes across as 0: a step’s hourly and activity cost, an item’s initial and waiting cost, a resource’s cost per use and a route’s cost per move. Enter them again.
  • Ordered arrivals. A buffer that an ordered (reorder) arrival fills needs room for the reorder level plus the order quantity, or a delivery will not fit. Check its capacity.
  • Report statements. This version has no statistics report, so a Report statement in step instructions is left out and counted in the report.
  • WAIT. A standalone WAIT, one that is not a WAIT UNTIL, is commented out so the rest of the instructions keep running.
  • OwnedResource() and Animate(). Neither has an equivalent here. They are left as written, so look at any step that used them.
  • Action logic on a continuous arrival is not carried across.
  • Subcharts are not brought in.
  • No protection. An imported model starts with no protection and is not read only. To protect it, use Tools ▸ Protect Model. See Protect Model.
  • Large appointment books. A scheduled arrival with a very large appointment book keeps its appointments in the model’s arrivals table instead of inside the model, so the model stays small. The report says how big the books are, and there is nothing for you to do. See Scheduled arrival.
  • Arrays. The arrays your step instructions use are declared for you, with the name, type and size they had, from the array definitions the package keeps beside the model. Their values are not carried, so each array arrives with the default value in every cell. An array that no step instruction uses is not brought in. See the Arrays tab of the Logic Builder.

A Visio drawing is a .vsdx file. It shows how a process is laid out, but not the things a simulation needs in order to run it, so ProcessModel brings in what the drawing holds and tells you what it does not.

What it brings. Its steps, their names and the routes between them, as drawn. Names come from the text on each shape, and text on a connector stays with its route. A shape drawn as a waiting line becomes a queue.

What it does not hold. Times, distributions, resources, shifts, wages, items that leave partway and arrivals. Each one starts at the ProcessModel default, for you to fill in after the import. The window lists them under Not in the drawing before anything is added.

The drawing is read as soon as you choose it, and the window widens to hold two sides.

The Import window with the drawing Order Fulfillment.vsdx chosen: the counts Pages, Steps, Queues and Routes, the steps In the drawing with the routes that leave each one, and Not in the drawing and Worth knowing on the right.
Figure 5. A drawing is chosen: what it held on the left, and what it did not on the right.

On the left, In the drawing. Four counts: Pages, Steps, Queues and Routes. A drawing counts its waiting lines as Queues, as the palette does, where a package counts the same shapes as Buffers. Under the counts, every step is listed by name, in the order they will arrive, with the routes that leave it. A step that makes a choice carries a Decision tag, with the text on each connector beside the step it leads to. A step drawn as a waiting line carries a Queue tag, a route into an End shape reads Exit, and a step that no route leaves reads No route drawn.

On the right, Not in the drawing and Worth knowing. Not in the drawing lists the seven things above as a row of small labels. Worth knowing says how this drawing was read.

When nothing was left out or renamed, Worth knowing opens with a green check: Every shape and connector in the drawing was read. The notes that can follow are these.

In amber, for what was left out:

  • 3 connectors did not join two different shapes, so they were left out.
  • 1 connector could not be matched to the steps at its ends, so it was left out.

In blue, for what is worth knowing:

  • The drawing has 3 pages. All of them were read into the one model.
  • 2 shapes were drawn as waiting lines, so each becomes a queue, with their names after it.
  • 2 shapes had a name another shape already uses, so each was given a number, with their names after it.
  • No start shape was found, so the steps keep the order the drawing lists them in.
  • 2 shapes are decisions. The share of the flow on each route out of a decision is not read, so set it after the import.
  • Start and End mark where the flow begins and ends, so they are not steps.
  • Where shapes sit on the page is not kept, so ProcessModel arranges the model left to right.

The numbers in these notes are examples. Each note counts what the drawing held, and is worded for one when there is exactly one. The note about the arrangement is always there.

The Import window with the drawing Returns Handling.vsdx chosen: two amber notes about connectors that were left out, and blue notes under Worth knowing about pages, waiting lines, shared names, the missing start shape, decisions and the arrangement.
Figure 6. A drawing with a good deal to say: connectors left out in amber, and how the drawing was read in blue.

A drawing makes a new model, so like a package it waits for an empty canvas. When you press Import, the model opens as a new model that is not saved yet. It takes the name of the drawing’s file, and the steps are arranged left to right. A message confirms it, for example Imported Order Fulfillment.

If the report is taller than the ProcessModel window allows, the middle of the window scrolls while the title and the buttons stay where they are.

When there is nothing the window can import, it says so in a note edged in amber, and Import stays dimmed. These are the sentences, with a sample file name in each:

WhenWhat the window says
A file that is neither a package nor a drawingBudget 2026.xlsx is not a model package or a Visio drawing that ProcessModel can read, so there is nothing to import.
A drawing with no pagesFloor Plan.vsdx holds no drawing pages, so there is nothing to import.
A drawing with no shapesBlank Flowchart.vsdx holds no shapes that can become steps, so there is nothing to import.
A file named as a package that is not oneThat file is not a legacy ProcessModel package. A .spg package is a compressed archive; this file does not start like one.
A file the computer cannot readThat file could not be read, followed by the reason the computer gives.
A package over the size limitWhole Plant.spg is 120.4 MB, which is over the 100.0 MB limit.

A package that holds no model is refused with a message that says so. So is a package of which only a small part can be understood: the message says how much was understood, and nothing is changed.

The first of these, as the window shows it, with nothing chosen and Import dimmed:

The Import window with Nothing chosen beside the Choose package or drawing button, and a note edged in amber that reads Budget 2026.xlsx is not a model package or a Visio drawing that ProcessModel can read, so there is nothing to import. The Import button is dimmed.
Figure 7. A file that is neither a package nor a drawing: the amber note says there is nothing to import.
  • Import Recipe builds a model from a recipe you paste. It has its own entry, File ▸ Import Recipe, and its own window.