Introducing Simio Version 9.147 – End Year Academic and Public Release – December 2016

Simio 9.147 Overview

Review a highlight of some of the newest features of Simio 9.147 including many enhancements to existing object functionality!

Here are quick video summaries of some of the newest features of Simio 9.147. Detailed release notes are below.

New Features

Flow Library – Filler/Emptier Object Enhancement - New OffShift Rule property

The Filler and Emptier in the Flow Library objects now include the new OffShirt Rule property.

The new OffShift Rule property allows either 'Suspend Processing' or 'Finish Work Already Started' at the end of a shift or capacity change. A corresponding new list state of ‘OffShiftProcessing’, value of 6, has also been added to the corresponding objects. If the OffShift Rule is ‘Suspend Processing’, the processing of the entity is immediately halted and the Filler or Emptier goes into an ‘OffShift’ state to complete processing once the capacity or shift changes. If the OffShift Rule is ‘Finish Work Already Started’, the state of the Filler or Emptier goes into ‘OffShiftProcessing’ while the processing of the entity is completed, then will change to ‘OffShift’ for the remaining off shift time.

Material Pegging – Enhancement to Materials Element and Supporting Steps

Pegging links material demand to material supply. Simio will allow material quantities in stock to be assigned to lot identifiers, with those lot identifiers then referenceable by material reservation and consumption requests.

Pegging relationships between material demand and material supply can provide more detailed logging of raw material usage as well as prevent material inventory from being allocated to unlinked demand.

As an example, suppose a specific production order requires 100 units of raw material A. That material quantity can be linked (pegged) to the order using a unique lot number. Entities associated with other production orders will then be unable to reserve or consume from that specific lot of material.

The Material element has been enhanced to include a new Lot ID under the Initial Quantities (More) repeat group for initializing material lots. The Produce and Consume steps also include the new Lot ID for producing or consuming a particular lot. Similarly, the Reserve and UnReserve steps include the Lot ID property for reserving a particular lot of material. The Route step now allows the required materials before routing to include quantities that are assigned to specific lot identifiers.

The Lot ID property may be specified as a string literal enclosed in double quotes (e.g., “Lot1”), the name of a string state variable or string column in a table, or any other expression that returns a string value.

Material Pegging – Enhancement to Server, Combiner, Separator, Workstation and TransferNode

The Standard Library objects that include materials specification have been updated as well to include the enhancements for Lot ID.

The Server, Combiner, & Separator objects have been enhanced with a new Lot ID property for defining the material requirements of a task sequence’s processing task. The Workstation object has been enhanced with a new Lot ID property for defining material constraints. The TransferNode object now includes a new Lot ID property for defining the required materials that must be available before routing out to a destination selected from a list.


New Functions for Material Pegging

The following functions have been added in support of the above material pegging enhancements.

  • Pegged.QuantityInStock(lotID) - Returns the current quantity of the material of a specified lot identifier that is present in the system.
  • Pegged.QuantityReserved(lotID) - Returns the current quantity of the material of a specified lot identifier that is reserved.
  • Pegged.QuantityReservedTo(owner, lotID) - Returns the current quantity of the material of a specified lot identifier that is reserved for use by a specified owner object.

Note: Specifying the lotID argument as an empty string will return the current quantity of unassigned (not pegged) material that is present in the system or is reserved.

Materials Enhancement – Ignoring Material Constraints

The Material element has been enhanced to conditionally allow a material’s availability to be ignored as a constraint. The Assume Infinite Availability If property is an optional condition that is evaluated whenever an entity is attempting to consume the material. If the condition is true, then the entity will be allowed to immediately consume its full required quantity of the material regardless of the actual quantity in stock. Note that this may result in negative inventory levels.

Materials Usage Log and Constraints Log Enhancements (Enterprise Edition) – Lot ID

The Material Usage Log now includes columns for Lot ID and Lot Stock Level.

Note that the value shown in the existing Stock Level column hasn’t changed; it continues to show the stock level for the material overall, while the new Lot Stock Level column shows the stock level only for the specific lot, or for the material that doesn’t have a Lot ID.

The Constraint Log now shows the Lot ID for material constraints with a lot specified. It appears as MaterialName.LotID in the Constraint Item column. Note that the Constraint Item Id column continues to show just the MaterialName.

Processes Window Enhancements

The Processes window has been changed to include a slightly new graphical interface for the process logic connections, as shown below.

Additionally, there is new a Search filter mechanism for the processes themselves for easy locating by process name.

Model Object References

The right click menu on a Model has changed so that the Object Reference selection is now a submenu:

The “View” selection shows all object definitions referenced by the model, as this Object References option has in the past.

The “Add/Remove” is new and allows a user to explicitly add a reference to another object definition, without having the instantiate something of that type inside the model. This is particularly useful if, for example, the user is creating a custom link that has Starting Node and Ending Node of a given type Node.

Revised and Consistent Animated Symbols

We have enhanced our animated symbols selection to include more realistic animated people symbols as well as a consistent set of actions amongst all animated peoples. These include the actions as shown below.

Seize/Consume/Produce step Enhancements

The Seize, Consume and Produce steps now include an option to conditionally skip a seize attempt or consume / produce materials attempt. Note that corresponding enhancements to the Release step are not required because the ‘All’ Release Quantity Type will simply not release any resources when none had been seized by the executing token.

New Table Based Work Schedules

Schedules now allow for either Pattern Based Work Schedules or Table Based Work Schedules.

The user interface for Pattern Based schedules has been updated slightly to show both the work schedule and day patterns within the same window.


Table Based schedules require the schedule to reference a Table name, as well as property values for Start Date Time, End Date Time, Value and Cost Multiplier. These table based schedules allow for users to easily import data into the tables from external data sources. Note that Value and Cost Multiplier expressions are evaluated only at the start of the simulation run and are not dynamically updated.

Table Usability Enhancements

We are continuing to add enhancements to our table usability. This sprint we have included the multi- select filter on columns, as well as the auto filter row that can be turned on for typing in column data to filter.

Support Distributed Runs for Academic Enterprise Edition

We now support distributed runs for the Simio Enterprise Edition – Academic version for experimentation.

New Experiment Add-In

We have added an experiment add-in for selecting the best scenario for large scale models. Select Best Scenario using GSP add-in uses the ‘Good Selection Procedure’ to solve large-scale simulation-based optimization problems using the power of cloud computing.

Modeling Servers with Sequence Dependent Setups – General Information

We have made many enhancements to support the use of sequence dependent setups within Server, Combiner and Separator objects.

Sequence dependent setup time data is defined in changeover matrices and/or data tables. That setup time data is then referenced by a Changeover Logic element which is being used by either a single server or a group of servers. If there are multiple servers using the same changeover logic, then those individual servers may have different setup efficiency multipliers where each setup is possibly performed slower or faster at a particular server than the average time.

During the model run, entities representing jobs might be selected for processing at the servers using the ‘Least Setup Time’ dispatching rule. The Changeover Logic element takes care of caching the attribute values of the previous operation at each server to determine and return the next sequence dependent setup time.

New ChangeoverLogic Element and Changeover Step

We have added a new Changeover Logic element that can be used in conjunction with the new Changeover step to model sequence dependent setups at one or more resources.

There are many ways that the Setup Transitions repeating properties of the Changeover Logic element can be defined, including referencing a Changeover Matrix as well as specific attribute to attribute values.

The new Changeover step can be used in conjunction with the ChangeoverLogic element to model sequence dependent setups for a particular resource.


Enhanced Server, Combiner, and Separator - Task Sequence Process Type

Now included with Servers, Combiners and Separators is the option for ‘Sequence Dependent Setup’ under the Process Type property of the Processing Tasks repeating properties for Task Sequences.

New SetWorkSchedule Step and Associated Function

Following up the work schedule enhancements, we have added a new step that will allow the user to dynamically assign the active work schedule for an object at runtime. Based on the current simulation and the newly assigned schedule, the capacity of the object will adjust accordingly.

The following function has also been added, CurrentWorkSchedule.Name, which will return the currently active schedule for a given resource object.

Table Usability Enhancement – Split

In conjunction with previous table enhancements, we now allow data tables to be ‘split’ for ease of use in viewing and editing large tables. The Split option is available by right-clicking anywhere in the table and selecting the option. The splitter bar down the middle of the table, as seen below, can be moved and each portion of the table view contains its own scroll bar along the bottom.

Library Panel Changes – Concurrent Active Libraries

Our interface for the Libraries panel has been enhanced to allow users to easily work concurrently with multiple libraries. As you can see in the diagram below, the old panel allowed for a single library of objects to be active and selected at a time. The new panel interface allows all library panels to be active at once. The interface provides scroll bars for each library and users still expand/collapse or adjust the splitters for each library individually. Additionally, the side splitter can be dragged to get a resized Libraries panel.

Animation Enhancements

There is a new Orientation property group under the Physical Characteristics category. The end user can adjust the Yaw value, but the Pitch and Roll values are always read-only and set to zero (not supported graphically right now). The Yaw (or heading) is defined as the angle in degrees, measured clockwise from –Z, of the object in the X-Z plane.

There is also a new function Orientation.Yaw which returns the value of the Yaw from the property grid for Fixed objects, and the value of Movement.Heading for Agent objects.

We have added a new property in the Animation group, available for entity instances, which will determine how entity objects move between angles of link segments.

Server / Combiner / Separator –Setup and OffShiftSetup States

We added the option of sequence dependent setup task occurring at a Server, Combiner, or Separator. We’ve now enhanced the ResourceState state variable of those objects to be set to the value Setup (7) or OffShiftSetup (8). The latter value if the object is offshift but the OffShift Rule is ‘Finish Work Already Started’ and thus the setup task is being finished while offshift.

Users will also now be able to optionally animate the Server, Combiner, or Separator object’s symbol differently if it is in one of these new resource states, and ResourceState->TimeSetup and ResourceState->TimeOffShiftSetup statistics will be automatically reported for the object in the results. Additionally, these new resource states may be seen within the Resource Gantt (Simio Enterprise Edition). There was also one new function added for an object used as a resource:

HasActiveChangeover - Returns True (1) if there is an active changeover occurrence at the resource. Otherwise, the value False (0) is returned.

Separator Enhancement – Create New (No Copying)

We have added an additional Separation Mode option for the Separator object, allowing a user to simply create new entities upon processing each parent entity without copying over any state or attribute data.

Filler and Emptier Enhancement – Stop Early Triggers

The Filler and emptier are expanded to included Stop Early Triggers. Note that the previous Stop Early Event Name property that both those objects used to provide has now been deprecated and moved into Advanced Options -> Deprecated Properties.

Station Enhancement – Buffers with Balking

We have added some new properties to the Advanced Options for the Station element, including the Balk Entering Decision Type and Redirect Location Type with supporting properties. These will support modelling of buffers with balking using Standard Library objects.

New Stipulate Step

The Stipulate step may be used to add dependencies and requirements that entities must satisfy before proceeding. Stipulations can be for node list selection or resource allocation. It is primarily intended for use with Simio Enterprise Edition and has similar functionality (except through Processes window) to the Gantt drag and drop feature.

SetRow Step Enhancement – Clear Table References

There is a new property on the SetRow step that allows users to clear all previous table references for an object prior to setting a row for that object for a given table.

New Entity Function

Entity.IsTravelingInReverse - Returns True (1) if the entity is currently traveling in reverse. Otherwise, the value False (0) is returned. This function returns True if an entity is traveling in forward orientation on a network and then does a turnaround on a bidirectional link using the Network Turnaround Method ‘Reverse’. It will also return True if an entity is traveling in free space with a negative movement rate.

Visibility Flag for Models in Projects

We have added a new property, Visible in Library, which allows users to ‘hide’ a particular model within a project when that project is loaded as a library. This was requested by several users building custom objects.

Buffer Logic – Balking Options

We have added balking options to the input and/or output buffers for the Source, Server, Combiner, Separator and Workstation within the Standard Library. Additionally, these features have been added to the Filler, Emptier, ItemToFlowConverter and FlowToItemConverter within the Flow Library.

For each input buffer and output buffer, the Balking Options includes the Balk Decision Type, which can be ‘None’, ‘Blocked’, ‘Conditional’ or ‘Probabilistic’, as well as the Balk Condition or Probability and the Balk Node Name which can be a specific node or ‘None (Destroy Entity)’. A new Balking Options page in the Simio help provides examples for the different property options.

Simio also includes statistics on the total number of balked entities for a buffer in the automatically reported results

Entity Animation - Display entities as segmented along links

Entities now have a Draw Type property (Animation) that allows the entity to be ‘Single’ or ‘Segmented’. To have the entity actually move segmented, both the new Draw Type property should be set at ‘Segmented’ and the entity symbol itself must be able to be segmented. For example, to animate a train, the user would go to the Project Home ribbon, click New Symbol -> Create New Symbol, and place a number of individual cars and engines into the symbol. Then the new symbol can be applied to the ModelEntity placed in the Facility window.

State Assignments in Library Objects

The State Assignments section of properties in the Server, Combiner, Separator, Filler and Emptier objects has been enhanced to include a repeating property editor for optionally making assignments Before Processing and/or After Processing at the object.

Table Row Referencing in Library Objects

The Table Reference Assignments section of properties in the Source has been renamed to Table Row Referencing. Additionally, an Action Type property has been added to allow users not only to ‘Reference Existing Row’ in a table before or on creating entities, but also to allow for alternatively to ‘Add New Row’ to an output table.

In conjunction with this change, the Server-oriented objects including the Server, Combiner, Separator, Filler and Emptier objects, have been enhanced to include the ability to reference table rows before the entity starts processing (prior to before processing state assignments). Each of these objects now allow for either referencing an existing row in a data or sequence table, or adding a new row to an output table.

SetRow and AddRow Step Enhancements

The SetRow step (available in all Simio editions) and the AddRow step (available in Simio Enterprise edition) have both been enhanced to include a new conditional expression property. If a condition is specified, then it must evaluate to ‘True’ to perform the set row or add row action.

Support Ribbon Updates

We have updated both the Videos and Training buttons on the Support ribbon to provide a more organized and up to date look at the various levels for learning more about Simio, as well as resources for training. All options take you to links on our Simio website.

Remove Step Enhancements

We have changed the Remove step to include the ability to remove an entity from material allocation queues, as well as from network visit request queues (Global dot VisitRequestQueue, for example). Entities either waiting for material or transporter (Worker or Vehicle) allocation can now be easily removed from those queues if desired. This additional functionality has been added as we continue to enhance our balking and reneging capabilities.

Right Click on Library Panel Change

In addition to using the Load Library button from the Project Home ribbon to load a library into the project, users can now also right click on the library area itself to access the Load Library functionality. This right click area now allows both loading and unloading of library files.

Performance Enhancements with Status Label Creation

We’ve changed the way status labels are created - specifically, this addresses some performance issues with many status labels attached to many, many dynamic objects (entities). The enhancements are most notable when many status labels have the same exact size, color, and content, as we now share the same generated label between all those instead of creating a new one for each of them.

New Functions

  • LocationAt.Geographic - converts a latitude and longitude to an X,Y,Z location in the model, relative to the current latitude and longitude of the model's origin. The result of the function is a Location, with Z and X components that correspond to the latitude and longitude, respectively. Note that the range of valid values for latitude is -90.0 to +90.0, and for longitude is -180.0 to +180.0. If either value is out of range, the result is a Location consisting of all NaN values.
  • DateTime.SystemNow - returns the current DateTime from the computer (actual time, not simulation time), expressed in the computer's current timezone.
  • DateTime.SystemNowUtc -returns the current DateTime from the computer (actual time, not simulation time), expressed as Coordinated Universal Time (UTC).

New SimBits

We have added several new SimBits during this release:

  • ServerUsingTaskSequenceWithSequenceDependentSetups - This model is a modification of the WorkstationWithSequenceDependentSetup SimBit. It demonstrates the use of the Server’s sequence dependent setup with multiple entity (attribute - color) types, a ChangeoverLogic element and a Changeover matrix.
  • ServersUsingTaskSequenceWithDataTables_SequenceDependentSetups - This model also demonstrates the use of the sequence dependent setup options within a Server. This SimBit includes processing task data and setup transitions specified within relational data tables.
  • UsingTheStipulateStepForNodeLists - This project contains three models to demonstrate the various uses of node lists, including the drag and drop in the Resource Plan Gantt for node list routing dependencies and node list requirements, as well as the use of the Stipulate step to determine those list requirements.
  • UsingTheStipulateStepForResourceAllocation - This project contains three models to demonstrate the various types of resource allocation, including the drag and drop in the Resource Plan Gantt for resource allocation dependencies, as well as the use of the Stipulate step to determine resource allocation requirements.

Download the latest Simio Simulation Software Free

Do you want still more information? Examine the release notes for other recent releases.