Simio Release Notes
Simio Release Notes
Simio Release Notes
We are pleased to bring you the latest update to Simio. Simio’s patented
processes provide ease of use while also allowing unprecedented flexibility
without coding. And Simio leads the industry in data representation and analysis.
Simio is unique in our ability to do design, planning, scheduling, and process
digital twins in a single application.
Many of our customers have cited Simio’s flexibility, ease-of-use, and great
support among the reasons why they have adopted Simio -- often switching so
they can do things that are difficult or impossible with other products. But we
are not resting on that success – we are continuing to make Simio easier to use
and more flexible, while leading the industry with more technology
breakthroughs.
This document describes the wealth of new features that have been recently
added. Simio is ready to take on your most demanding modeling tasks.
The desire to teach using the latest innovations and online learning, combined
with Simio’s comprehensive academic resources are moving Simio towards
becoming the most widely taught simulation package with over 800 leading
academic institutions worldwide already adopting Simio.
We are anxious to hear about your experiences. Please post your feedback in the
forums mentioned below or send it directly to me.
Thanks again for choosing Simio.
Dave Sturrock
Vice President – Products, dsturrock@simio.com
Simio Release Notes
Support
The best way to get support is to use the Simio User’s Forum found at www.simio.com/forums,
or contact us at support@simio.com using one of the links on the Support Ribbon. Sign up on the
user’s forum as a Simio Insider to get full access to find product information, a place to post
problems and questions, and the opportunity to engage in discussions with other users and the
Simio team.
The Support Ribbon (the Support tab) of the Simio software contains shortcuts to the above,
plus much more. Don’t miss the links to our on-line documentation, training, videos,
downloads, and other helpful resources. While Simio includes comprehensive on-line help
available at the touch of “F1” or in the product, the numerous books and free video training
courses provide a great way to get started using Simio.
What is a Sprint?
We are following an agile methodology in which we develop in three week cycles called sprints.
At the end of each sprint we have tested, documented, distributable software including new
functionality. The following pages describe the enhancements added during each sprint. It is
not necessary that you download and install every Sprint unless you are interested in a
particular feature. But we encourage you to do so when convenient so that you are always
working with the best software, documentation and examples we can deliver. Most sprints are
posted to the Simio Insiders Downloads Topic. The public releases (discussed below) are
updated approximately twice a year.
The latest public software releases can be found at: www.simio.com/download. Your activation
will continue to work with new releases as long as your maintenance is current. Newer releases
are often available on the Simio Insiders forum.
Simio Release 12 – Sprint 214/215 – December 11, 2020
Welcome to Sprint 214/215! In this sprint, we added a Periodic Statistic Element, additional Skyboxes,
an additional export option for Data Tables, and Table Schemas for Elements, Objects, and Repeat
Groups. We also removed DirectX9 support from the software and added support for Sketchup 2020.
We improved our dynamic selection rule at a Routing Group element to dynamically select entity-
destination assignments. Lastly, we added the Extras Library along with SimBits and an Example to the
software.
The parts needed for engine repair are pulled from containers which sit on pallet racks in the storage
area. A forklift will pick up the container off a shelf and move it to a drop off zone. In this building,
the storage facility is located on a different level. Once dropped off by a forklift, the storage container
must ride down an elevator to the lower level. From the elevator, a worker moves the container to a
conveyor system. This conveyor system moves the containers past robots which will
pick up the needed parts out of the container and then place the part in a small kit bin. At the end of the
container conveyor, new parts are added back into the storage container and sent up to the upper level
on another elevator where they are then returned to the shelf by a forklift. At the end of the kit
conveyor, a worker will deliver the kits to the engine repair stations.
Added Additional Export Option for Data Tables: Export at Experiment Replication End – RPS Only
This customer requested feature allows data to be exported at the end of each Experiment replication
run.
Note: If loading a model saved in Sprint 214 or earlier, the Allow Cross-Node Comparisons When Using
Routing Group Dynamic Selection Rules advanced compatibility bit will need to be set to ‘True’ to use
the modelling approaches illustrated above.
Simio Release 12 – Sprint 213 – October 13, 2020
Welcome to Sprint 213! In this sprint, we enhanced file merging, Controls, and Experiments.
Improved File Merging – Opt-out of Signing Files – Professional and RPS Only
This user-requested feature allows users to opt-out of signing files when they save them via the Sign
Files property on the project. This feature was designed to improve multi-author file merging under
source control/simproj scenarios. Signing files is recommended, as it allows certain lower editions of
Simio to open files. However, for multi-author scenarios, where multiple users are working on the same
Simio project (via source control around a simproj format), setting Sign Files to ‘False’ will help avoid
conflicts around file merging.
Control Value Enhancements – Ability to Update all Properties’ Default Value to Match the Current
Control Value
This user-requested feature allows users to save all current Control values to become the Default Value
of the properties they correspond with. This can be done by right clicking in the Controls area and
selecting “Save All Current Values As Default”.
Experiment Enhancements – Ability to Copy the Model’s Control Values to this Scenario
This user-requested feature allows for Scenarios within an Experiment to have its Controls set by what
the current values of the Controls in the model are instead of the Default Values of these Controls. This
right click on the desired Scenario reduces the need for manually typing in Control values that match the
values that were last used in Interactive Mode.
Simio Release 12 – Sprint 212 – September 22, 2020
Welcome to Sprint 212! In this sprint, we added an additional Data Connector Importer and Exporter.
Welcome to Sprint 211! In this sprint, we enhanced our Constraint Logic element, our Documentation
Report, and the Experiment logic. Additionally, Simio now supports additional types of file imports. We
finished up this Sprint with improved functionality on a bound table and the ability to reorder
Dashboards and Table Reports.
Ability to Reorder the Order that Dashboards and Table Reports Appear
This feature was implemented to provide a way to define the order that Dashboard and Table Reports
appear in the dropdown.
Experiment Enhancements
This feature was designed to improve the speed of Experiment runs. The Concurrent Replication Limit
default of ‘0’ will be set to physical cores when running locally.
Constraint Logic Enhancement – Provide Option that will Allow Switch Resource if Possible to Happen
Before Constraint Logic Elements in the Simio Event Calendar
There is a new compatibility bit “Schedule Constraint Logic Related Queue Checks As Latest Current
Events”. Default value of this setting is ‘False’ for models built prior Sprint 12.211, ‘True’ for new models
built in Sprint 12.211+. When set to ‘True’, Simio will schedule constraint logic related queue checks as
latest priority current events, thereby allowing queue checks scheduled for any other reason to happen
first.
Ability to Import Additional File Types – STEP Files and glTF Files
This user requested feature was implemented to allow for Step and glTF files to be imported in Simio.
The new supported file extensions are as follows:
• STEP - .ifc, .ifczip, .stp
• glTF - .gltf, .glb
Simio Release 12 – Sprint 210 – August 11, 2020
Welcome to Sprint 210! In this sprint, we enhanced our CSV and Excel Data Connectors and we
enhanced our Constraint checking.
Welcome to Sprint 209! In this sprint, we have enhanced our Documentation Report, enhanced our
Active Binding Importation/Exportation, updated our Property Grid, and added another Constraint Type
to the Constraint Logic Element. We finished up this Sprint by updating some of our scheduling
examples and adding a new String.FromList function.
Active Import and Export Binding Dropdowns on Planning Tab – RPS Only
This feature allows users to set the Active Import Binding and Active Export Binding on the Planning Tab.
Prior to Sprint 209, the Active Bindings for the Planning Tab were set on the Data Tab.
By default, a ‘Condition Expression’ constraint will be automatically checked whenever the Constraint
Logic is checked for the related queue item waiting in the resource’s Allocation Queue or Routing
Group’s Route Request Queue. The Condition Expression is evaluated in the context of the constrained
entity execute the Seize or Route.
To perform additional monitoring of the constraint, you can use the Monitoring Event Name property to
trigger checks of the Condition Expression whenever the specified event occurs. If it is determined by
one of those extra checks that the condition result has changed from false to true, then that will in turn
automatically trigger a new check of the queue containing the related queue item.
For any constraint defined using a Constraint Logic element, customized values can be written to the
Constraint Type, Constraint Item, and Constraint Description fields of the constraint’s record in the
Constraint Log (and thus displayed in the constraint’s tool-tip text in the Gantt).
String.FromList Function
This customer requested feature returns the string representation of a specified integer constant in the
specified string list. For example, if you have defined the following string list which contains entries
“Green” = 0, “Red” = 1, and “Blue” = 2, then ‘String.FromList(StringListName, 2)’ will return ‘Blue’.
Simio Release 12 – Sprint 208 – June 30, 2020
Welcome to Sprint 208! In this sprint, we have enhanced our Travel step, added the ability to set Link
properties as a Reference Property, and implemented a feature that allows table row references that
are set on a Token to be referenced in Queue Ranking Expressions. We also added additional
exportation options for Tables and Logs.
Ability to Set a Link’s Type, Drawn To Scale, and Logical Length as a Reference Property
This feature was requested by multiple Simio users and allows for additional Link properties (Type,
Drawn To Scale, and Logical Length) to be set as a Reference Property. This also allows for these
properties to be set via a Data Table and altered with in an Experiment.
Note: If loading a model saved in Sprint 207 or earlier, the Allow Token-Based Table Row References In
Queue Ranking Expression advanced compatibility bit will need to be set to ‘True’ to use the modeling
approaches illustrated above.
Simio Release 12 – Sprint 207 – June 9, 2020
Welcome to Sprint 207! In this sprint, we have added two new functions as well as enhanced two of our
functions that deal with randomness.
RandomRow/RandomValue Enhancements
This academic request was implemented to provide the ability to better control randomness at different
stages of a model. Both RandomRow and RandomValue functions now support an optional stream
argument.
ColumnForName Function
This feature was designed to provide a simpler way to reference characteristics of a data table.
ColumnForName returns the 1-based index of the table column that is the specified property name. For
example, syntax like
‘PressValidResources[PressValidResources.MaterialName.RowForKey(Materials.MaterialName),
PressValidResources.ColumnForName(Candidate.Node.AssociatedObject.Name)]’ to lookup in
‘PressValidResources’ table the value in the row containing the key value ‘Materials.MaterialName’ and
the column named ‘Candidate.Node.AssociatedObject.Name’.
String.IndexOf Function
This customer requested feature allows Simio users to find the character position where a string occurs
within a string. String.IndexOf(string, substring) returns the one-based index of the first occurrence of a
specified substring within the string.
Simio Release 12 – Sprint 206 – May 19, 2020
Welcome to Sprint 206! In this sprint, we added another Constraint Type to the Constraint Logic
Element. There were also enhancements made to our Entity Workflow Gantt.
Entity Workflow Gantt Enhancement – Place Associated Constraints Under Owner Row – RPS Only
This internally requested feature was added to have Constraints associated with a specific Entity placed
in a row below the owner Entity. Prior to Sprint 206, all Constraints would be placed in one row at the
bottom of the high-level Entity. This feature allows users to see both the Owner Row and Constraint
simultaneously without having to scroll through the Entity Workflow Gantt.
Note: The following three conditions must be true for this to happen:
• The Constraint Log and Resource Usage Log both have expressions with the same name
• The Resource Usage Log expression is marked as “Show in Drop Down”
• The Resource Usage Log expression is currently selected as the “Owner Row”
If the Constraint Type is ‘Resource Availability’, then that resource requirement will be automatically
reserved using the specified selection goal when a resource is successfully seized (Seize step) or when
the Entity is successfully assigned a Destination Node (Route step). This is done to ensure that other
seize or route requests waiting for the same resources do not violate any resource availability
constraints.
Simio Release 12 – Sprint 205 – April 29, 2020
Welcome to our release of Simio 12! In this sprint, we added a new Flow SimBit, added the ability to edit
an existing federated data source in Dashboards, added an enhancement to the Changeover Logic
element, and added the ability to add a Data Connector from the Create Binding dropdown.
After selecting the Data Connector, the user will be able to set up the Default Configuration in a pop-up
property window and then the Data Table properties can be set up either via the Data Table itself or by
the Data Connector View.
Welcome to Sprint 204! In this sprint, we have enhanced our Data Connectors, API, and model
protection capabilities. Two new export trigger options on tables were added to give users more
flexibility with data exportation. We also added the ability for Targets to be exported using an Exporter
Data Connector. The ability to set an Active Configuration in an Experiment was implemented in this
sprint. We wrapped up this sprint with the deprecation of the XML Transformation classic binding and
the conversion of the Excel classic binding to an Excel Importer Data Connector. This sprint concluded
with the addition of a new example, InfectiousDiseaseSampleModel.
Export Plan at Project Save – This new export option allows for the export of planning tables upon saving
the project. This feature was added to allow for the exportation of plan state values. These are the
values shown on the Tables view of the Planning tab. The “Export At Project Save” export option exports
the interactive state values. These are the values shown on the Tables view of the Data tab.
Enhanced Protection Capabilities for Models – Ability to Protect Profile, Trace, and Watch – RPS and
Professional Only
In Sprint 202, we provided the capability to protect specified views within a Simio model. This
enhancement was designed to provide more protection flexibility by allowing users to protect specific
windows: Profile, Trace, and Watch. This model property is set via the Project Folder in the Navigation
Pane, then the Advanced Options property group Protection.
API Enhancement - Ability to Publish Plan to Portal Without Opening Desktop Software – RPS Only
This user-requested feature was added to allow for the running and publishing of a plan to Simio Portal
without any human participation. Prior to this feature, to publish plan results to Simio Portal a user had
to open Simio and select “Publish Plan Results to Website”. This feature allows users to publish to Simio
Portal in the API.
Note: There is a new SimioServerConnector.dll available as part of the main Simio install. It and its
associated dependencies are found in the ServerConnector subdirectory of the main Simio installation
directory. The Simio Server Connector Reference Guide can be found in the main Simio installation
directory.
Deprecation of XML Transformation Classic Binding
This classic binder was deprecated due to the recent implementation of Data Connectors in Sprint 202.
These Data Connectors provide more flexibility to users while also eliminating the need for classic
bindings. Models created with classic XML bindings will still use the classic binding for binding to
external data. Models created in 204 or later can show the deprecated table bindings if the setting Show
Obsolete Table Bindings is set to ‘True’. This property is located by going to File -> Settings -> Add-ins.
Conversion of Excel Classic Binding to Excel Data Connector – Importer Only
This feature was added to complete the transition of using classic bindings to the new Data Connectors,
which was implemented in Sprint 202. This new Importer allows for the importation of Excel data to a
table via a Data Connector. Models created with classic Excel bindings will still use the classic binding for
biding to external data. Models created in 204 or later can show the deprecated table bindings if the
setting Show Obsolete Table Bindings is set to ‘True’. This property is located by going to File -> Settings
-> Add-ins.
A healthcare provider’s ability to combat an infectious disease is directly impacted by their quantity of
resources available. The accessibility of beds and machines such as ventilators are crucial factors for
patients that require intensive care. Being able to anticipate the demand for these resources in a facility
is vital with repercussions linked to the mortality rate. With our model you will be able to experiment
with the number of beds, ventilators, and personal protective equipment (PPE) such as masks, gloves,
and gowns, to find the level necessary to provide care to the infected population. This model may be
useful as is or used as a starting point to customize a model to meet your specific needs.
Simio Release 11 – Sprint 203 – March 17, 2020
Welcome to Sprint 203! In this sprint, we added a new Constraint Logic element to allow users to put
material availability constraints on Seize and Route Requests. We also enhanced the Watch Window to
watch “sub-objects” of objects. The CSV and Database bindings were deprecated as a result of the Data
Connectors implementation in Sprint 202. The Wonderware Add-In was also deprecated. A new
scheduling example was added and the preexisting scheduling examples and templates were updated.
To finish up this release, we allowed Logs to be bound to an Exporter and added some enhancements to
our importation/exportation of data.
The figure below illustrates that a resource cannot be seized, or a destination node cannot be assigned
unless that requested item is available plus the additional constraint logic is satisfied.
The Constraint Logic Element is located on the Elements view of the Definitions Tab.
Due to the creation of the Constraint Logic element, enhancements were made to both the Seize step
and the Route step. These steps now have an Advanced Property Seize Constraint Logic and Route
Constraint Logic, respectively, where a user can specify additional constraints on the request by
referencing Constraint Logic elements.
If the constraint type is MaterialAvailability, then the quantity of the material that is required will be
automatically reserved when a resource is successfully seized (Seize step) or when the entity is
successfully assigned a destination node (Route step). This is done to ensure that other seize or route
requests waiting for the same material do not violate any material availability constraints.
Note: Any existing Required Materials repeat group on the Route step and the Other Routing Out
Options -> Required Materials repeat group on the TransferNode will be deprecated and can be replaced
with the Constraint Logic element. If using the deprecated method of constraining routing is desired, set
File -> Settings -> Display Deprecated Properties In Properties Window to ‘True’.
Import/Export by Binding Type – Import Professional and RPS Only, Export RPS Only
This feature was implemented in order to have more selective imports of data. In the Data Connectors
view, it is now possible to select a Data Connector and import or export all data tables that are using
that Data Connector as their active binding.
Welcome to Sprint 202! In this sprint, we have rethought of the way Simio binds table data to external
data with a new Data Connectors view. We have also added the ability to have a Simio model open with
a PDF file, RandomRow and RandomValue Functionality for State Columns, and enhancements to our
Camera Tracking. We finished up this sprint with improvements to our model protection capabilities and
the ability to define a Primary Key in an Output Table.
This Data Connectors view was designed to give as much flexibility as possible to the user to put
configuration at the level where it makes the most sense. When a user opts to use a new connector, the
data-grid will be loaded with a hierarchical master-detail view of configuration settings, an example can
be seen below.
Users can specify the Import Folder where the data files are located as well as the file names to be
associated with specified tables. This allows for easy changes to be made to what data file is associated
to a table. Once the structure of the bindings and tables have been put in place, it is possible to Create
Binding to a table binding specified in the Data Connectors. Simio currently supports a CSV Data
Importer, AVEVA MES Data Importer, and Database Data Importer.
Welcome to Sprint 200/201! In this sprint, we have enhanced our support for recovery project data to
include an option to delete the existing auto-saved recovery file. We have also made a slight change to
how multi-capacity server utilization statistics are calculated.
Suppose a Server has a capacity of 2 and at time 0.0 during the simulation run, two entities
simultaneously arrive to the Server and begin processing. One of the entities has a processing time of 2
hours and the other entity has a processing time of 4 hours. The Server has no output buffer and the
downstream process is blocked. Thus, when an entity finishes processing, it is held indefinitely in the
processing station of the Server trying to transfer out. We run the simulation for 10.0 hours.
Note that this change only impacted the utilization statistics reported for multi-capacity Servers. For
models saved in prior Sprint versions, to opt in to the new utilization calculation approach, the user
must go to Run Setup -> Advanced Compatibility Settings in the Run Ribbon and set the compatibility
setting for Exclude Entities Transferring Out Of Child Stations From Resource Utilization to ‘True’.
Simio Release 11 – Sprint 198/199 – December 13, 2019
Within this sprint, we have added several user-requested features, including simultaneous material
consumption, improved search table row referencing, multi-pass simulation enhancements for state
columns/output tables and enhanced search capability within RPS Gantts.
The Consume step now has a new Must Simultaneously Consume option as illustrated below:
A Must Simultaneously Consume option is now provided, under Processing Tasks -> Material
Requirements -> Required Quantity & Constraints, for material consumption within the Server,
Combiner and Separator objects.
Note that the Material Requirements property categorization now has a Required Quantity &
Constraints category like Resource Requirements.
There is also a new Advanced Compatibility bit which enables some recommended Search step
behaviors, eliminating flaws in the previous searching process.
For new models, this compatibility setting will be True, but False for older models unless manually
changed.
The Search step is a popular step that is heavily used in consulting projects, often to search rows in
tables. When searches of table rows are performed, there may be table row references set on the
original token, that the user wants included in match condition or search expression evaluations and/or
copied over to new tokens associated with found rows in the searched table.
Depending on the table relationship design, there can be conflicts between the table row references set
on the original token and the internal ‘evaluator’ token used by the Search step to evaluate each
individual row in the table, or a conflict when trying to set the table reference for a new token to the
found row.
Table State Columns and Output Tables Enhancement for Multi-Pass Simulation Approach - RPS Only
In Sprint 197, we added a new RestartRun step and Run.RunNumber function. We have now added the
ability specify a Keep Values on Run Restart property for both Data Table state columns (ones that are
not element or object reference states) and Output Tables. The options are only be available for RPS
licenses. These features work across interactive, plan, and experiment runs.
There are cases however where it is insufficient to run the model only once to create a schedule or
generate results for a scenario replication instance. Instead, the model must be run multiple times in
succession, with information determined by previous runs used as input data for the next run.
Simulation runs are continued in succession until the desired objective is achieved. This type of
simulation approach is often referred to as a multi-pass approach.
Page Break
Figure 2 - Multi-Pass Simulation Approach
For example, in the screenshot below (right side), when the user searches for ‘102’, the first instance of
‘102’ appears in Order_102 within the Gantt timeline area in the Mixing1 row. Selecting the right arrow
will then move the highlight to the next ‘102’ instance in the TankFill1 row. Searched items will be
highlighted on a row by row basis, without respect of timeline. Thus, multiple instances on a single row
will be highlighted before instances on a lower row in the Gantt.
Searches are NOT case-sensitive. Searches include items in the Constraints or Tasks and will expand the
+ on a row to show the Constraint / Task item if not already expanded. Searches do not include items
listed in the details tooltip (opened when hovering over an area on the Gantt).
Simio Release 11 – Sprint 196/197 – October 10, 2019
Within this sprint, we have enhanced our help for table referencing, added documentation for
scheduling labor efficiencies example and updated our examples animations.
In the trace below, the feature is turned on. This can be helpful, as a user may realize “My tbl_Routings
reference went from [11] to [12] (sequence table), and any foreign keys pointing into that row might
have changed to (foreign key state in an output table). Maybe that is why I’m getting this odd runtime
error.”
If in interactive mode, using the Reset button to re-initialize the model to its starting conditions will
cancel a restart command and set the run count using the new function, Run.RunNumber, back to 1.
We have added a new function Run.RunNumber that returns a one-based run count, incremented if a
run restart occurs using the RestartRun step.
For example, if executing a simulation with run restarts, then for the first run you’d see Run.RunNumber
return 1. For the next run, if restarted using the RestartRun step, you’d see Run.RunNumber return 2
and so on. An example of using the Run.RunNumber function in process logic might be in a condition
expression to decide whether to execute a RestartRun step. For example, if implementing a two-pass
algorithm, then you’d only want to execute the RestartRun step if ‘Run.RunNumber==1’.
The Inventory Site Type property now reads “Indicates the fixed object that is the inventory location.
Applies only to material elements whose Location Based Inventory property is set to True.” Thus, when
the inventory for a material in a model is a single location-less inventory, there is no ambiguity about
the inventory reference when trying to consume, produce, or reserve that material. We relaxed the
Simio engine's error checking to simply ignore the Inventory Site Type settings if the Location Based
Inventory property of a material is set to ‘False.’
Within this sprint, we have added the option to seize/release by condition with Secondary Resources
(Other Resource Seizes and Other Resource Releases), as well as an additional option for Table Based
Work Schedules to determine how a schedule start date relates to the start and end date times.
Secondary Resources Enhancement – New Skip Seize If and Skip Release If Properties
For completeness, we have added ‘Skip Seize If’ and ‘Skip Release If’ advanced options to the Secondary
Resources -> Other Resource Seizes/Other Resource Releases repeat groups. These properties allow
users to optionally skip the seize or release requirement.
Within this sprint, we have enhanced the RoutingGroup element, Table-based Work Schedules, and RPS
logs with new properties. We have also included optional seize / release conditions within secondary
resources and material requirements. Finally, breakpoints may now be set on decision type processes.
Example Scenario:
You have 20 entities waiting in the routing group’s route request queue. And there are 4 available
destination nodes. To assign entities to the four available nodes, you’d see the On Starting Route
Request Queue Search process get executed 4 times (once per each search pass through the queue) and
the On Evaluating Route Request process get executed 190 times (20 X 4 times during first search pass +
19 X 3 times during second search pass + 18 X 2 times during third search pass + 17 times during fourth
search pass).
IMPORTANT NOTE: This means that, in Sprint 194 software, if you update models to the new
Server/Combiner/Separator definitions and there are tasks of process type ‘Sequence Dependent
Setup’, then you’ll now see lower utilization statistics for those objects where the setups occurred. If you
have specified usage cost rates at the object, those usage cost rates will also no longer be accrued by
entities during the setup times.
The Release step’s Release Condition property has been renamed to Selection Condition to be consistent
with the Seize step and to help lessen any possible confusion that might have arisen between having
Release Condition and Skip Release If properties.
Secondary Resources Enhancement – New Skip Requirement If Property
In the Server, Combiner, Separator, Filler, & Emptier, for either Secondary Resources For Processing
requirements or Task Resource Requirements, a new Skip Requirement If expression property is now
provided. This feature allows for an optional condition that indicates whether to completely skip a
resource requirement (both the seize and release steps).
For example, a user may have a modeling situation where a worker is only required sometimes for a
particular task, thus needing the ability to filter out resource requirements on a requirement by
requirement basis without having to define different tasks. For example, suppose the Object Name
property for a resource requirement is specified as ModelEntity.WorkerReference where
WorkerReference is a state variable on the entity that is set to Nothing if no worker is actually required.
You would specify the Skip Requirement If conditional expression for that resource requirement as
‘ModelEntity.WorkerReference==Nothing’.
Processing Tasks – Material Requirements Enhancement – New Skip Requirement If Property
In the Server, Combiner, & Separator, for Task Material Requirements, a new Skip Requirement If
expression property is now provided. Similar to the above feature for secondary resources,
this feature allows for an optional condition that indicates whether to completely skip a material
requirement (e.g., filter out a particular consume or produce material action for the task).
Decision Processes - Allow Breakpoints
Simio now will break on a breakpoint in a decision process, as long as you have the ‘Use Scheduled
Breakpoints’ setting in File -> Settings set to ‘False’ (which is the default). Some of the decision
processes within Simio include OnEvaluatingMoveRequest, OnEvaluatingRiderAtPickup,
OnEvaluatingRiderReservation, and OnEvaluatingSeizeRequest.
RPS Logs Enhancement - Allow Custom Log Expression Columns in All Logs
We now support the addition of new expression columns in all logs. Previously, the user could only add
extra columns to the Resource Usage, Resource Info or Task Logs.
For logs that have both a start time and an end time column, you can set the expression to evaluate at
the start or end. Note that even though the Transporter Usage Log has four datetime columns, there’s
no provision for evaluating an expression at either Start Ride Time or End Ride Time.
Additional columns are useful in various logs for developing dashboards and table reports as well as
filtering data.
Simio Release 11 – Sprint 193 – August 8, 2019
Within this sprint, we have added several user-requested features, including entity orientation options
within queues, Material element replenishment policy properties and repeatable dynamic selection rule
options.
This orientation takes precedence over any other given orientation for the queue (for example, the
direction specified by an “Oriented Point” queue).
Additionally, there are some new functions in the Orientation namespace for objects:
Orientation.Direction.X – Returns the X component of the unit vector indicating the current direction
the object is facing.
Orientation.Direction.Y – Returns the Y component of the unit vector indicating the current direction
the object is facing.
Orientation.Direction.Z – Returns the Z component of the unit vector indicating the current direction
the object is facing.
Orientation.Roll – Returns the current roll angle in degrees, measured clockwise from the +Y, of the
object in the X-Y plane.
Materials - Review Period & Replenishment Policy If Not Location Based Inventory
If the Location Based Inventory of a Material element is set to ‘False’, we now allow Review Period and
Replenishment Policy related properties to be specified for the single global inventory of that material.
This information used to only be specified with the Inventory element for the material. This was a user-
requested feature from our Simio Sync user’s meeting.
Table Based Schedules - Change "starting type" for repeating table-based schedules
Users can now give an alternate starting type/anchor point for a repeating table schedule. By default, it
starts the schedule from the start of the run. Now users can alternatively tell it to start from some offset
from midnight on the first Sunday before the run. If a repeating schedule is raw numbers for offsets
(instead of datetimes), in terms of week- long repeating intervals, this mode is probably more
appropriate. This is an enhancement to the recently added repeating schedules.
Within this sprint, we have added the capability to model resource efficiencies, as well as repeatable
secondary resources for processing. The ability to add or delete a node from an existing link is a much-
requested feature that’s been added as well.
Resource Efficiencies
We have added a number of features, detailed below, that will allow an efficiency value, expressed as a
fraction, to be associated with any seized resource – particularly a secondary resource seized for
processing or task processes within a Server, Combiner, or Separator object. The actual work duration is
the planned work duration divided by the resource efficiency. Typically, the efficiency would be
defaulted to 1.0. Values greater than 1 shorten the time and values less than 1 lengthen the time.
For example, if a task takes one hour at a 100% resource efficiency rate, then
If Resource Efficiency Is Then Task Duration Will Be
1.5 (150%) 0.667 Hours
1.0 (100%) 1.0 Hours
0.8 (80%) 1.25 Hours
0.5 (50%) 2.0 Hours
If there is more than one seized resource with an efficiency, there is a aggregate efficiency value control
to use (e.g., the minimum, maximum, average, sum, etc.), including an option to ignore seized resource
efficiencies.
If using the ‘Switch Resources If Possible’ Off Shift Rule at a Server, Combiner, or Separator object, Simio
automatically adjusts the remaining processing or setup time to reflect efficiency changes due to
switched secondary resources.
If the Process Type is ‘Specific Time’, the Resource Efficiency Rule is visible within the Other Processing
Options of Process Logic area. This property is used to alter the rate at which work is performed if there
are seized resources with defined efficiency values. The actual work duration is the planned work
duration divided by the efficiency. The Resource Efficiency property is used within the Secondary
Resources (Resource for Processing) area to alter the rate at which the task is performed using the
seized resource(s), expressed as a fraction. An efficiency value greater than 1 shortens the time and a
value less than 1 lengthens the time.
If the Process Type is ‘Task Sequence’, the Resource Efficiency Rule is visible within the Task Information
area of the repeatable processing tasks. The Resource Efficiency property is specified within the
Resource Requirements area for the task. Note that Resource Efficiency can be specified for each
resource required if multiple resources have been referenced within a data table.
For all of the above functions, the aggregate type is an integer argument with possible values: 0 = None,
1 = Average, 2 = Count, 3 = Maximum, 4 = Minimum, 5 = Sum. Note that if the aggregate type is None or
if there are no seized resources with defined efficiency values, then the value NaN is returned.
As you can see from the below diagram, there is an existing Path link between Output@Source1 and
Input@Sink1. By clicking on the path, the user is directed to the Edit menu which will allow for the
addition (Insert) of any type of node to the path.
Alternatively, if the path has one or more existing nodes that are no longer required, the user may right
click on the node (as in BasicNode1 below) and select ‘Remove Node and Join Links’, then select the
path that will remain as the current link (e.g, Path1 below).
Secondary Resources Enhancements
We have enhanced the secondary resources functionality within the Server, Combiner, and Separator in
the Standard Library and Filler and Emptier in Flow Library. These enhancements allow for more
flexibility in specifying either single or multiple secondary resources for processing or before/after
processing.
These enhancements include having multiple Secondary Resources for Processing (resources used
throughout the entire processing of an entity) to be specified using a repeat group data structure. If
using a repeat group to specify Secondary Resources for Processing, we also provide Off Shift Rule, Must
Simultaneously Seize, Immediately Try Seize, and Immediately Try Allocate When Released property
values to be specified. If not using a repeat group to specify Secondary Resources for Processing, allow
Number Of Objects, Units Per Object, and Must Simultaneously Seize property values to be specified for
the single resource requirement.
For each Secondary Resources -> Other Resource Seizes repeat group, we now include a Resource
Efficiency property for a resource seize requirement (inside repeatable property). See the above release
notes on new efficiency features.
For each Secondary Resources -> Other Resource Seizes repeat group, we have added an Immediately Try
Seize property value to be specified. Similarly, for each Secondary Resources -> Other Resource Releases
repeat group, we now include an Immediately Try Allocate When Released property value to be
specified. These features were added to Simio for the main resource and task resources several sprints
ago.
If using a ‘Smallest Value’ or ‘Largest Value’ Selection Goal is used to seize a secondary resource, we now
display a Value Expression (like Selection Expression) in the properties window.
The Routings table has been modified to include parallel production steps within the routings of
FinishedGoodA and FinishedGoodB. A ‘route controller’ Server object and it’s referenced process titled
‘PopulateImmediateSuccessorSequences’ are used to generate entities for the various parallel process
steps.
For example, in the below routing, the Sequence Number is used in the process logic to determine the
parallel activities within the routing – Cut and Weld (10.1 and 10.2) operations are done in parallel
before Finish (20) and then Ship (40). The Entity Workflow Gantt shown below shows the resources and
sequence for the order, as they are processed.
New SimBits
We have added three SimBits to our extensive list of small models that illustrate specific concepts. They
include:
ServerBlockingApproaches – This project includes four models that demonstrate various ways of
modeling blocking, that is, holding an entity at a Server or processing area until there is room at the next
Server or processing area. The methods used include Connectors, Add-on Processes with Wait step and
built in events and Entity Destination Types of selecting from a list / custom routing group element.
InventoryReplenish – This project includes three models that demonstrates some of the inventory
Replenish Policy options in Simio. This includes the ‘Min/Max’, ‘Order-Up-To’ and
‘ReorderPoint/ReorderQuantity’ rules. Both the Review Period options, including ‘Timer Review Period’
and ‘Continuous Review Period’, are shown in each of the models.
ResourceSelectionConcepts – This project includes four models that demonstrate the use of Secondary
Resources For Processing. The Models increase in complexity and demonstrate methods for selecting
resources based on attributes like cost, efficiency and skill.
Within this sprint, we have so many cool new features that have been requested by our users as well as
our internal consultants. These range from being able to change the starting or ending node of a link
(without losing the link!) and auto-creation of links to enhanced table functions and referencing for
more flexibility to repeating table work schedules.
If the Default Value Instantiation is ‘AutoCreateInstance’ and the Object Type is a link type (or an Object
Type property), then the Link Starting Node and Link Ending Node appear in the property grid:
Users can also specify a detail table column (or static value) for the position of the vertices of an auto-
created link in a table. The example below shows two tables, Links and Vertices. The Links table creates
the connector links between the node names listed in Node1 and Node2 columns. The related Vertices
table lists the x, y, and z cartesian coordinates of the vertices of the connector(s). Location Type can
alternatively be ‘Geographic’.
New Table Function - TableName.KeyColumn.RowForKey(keyValue)
We have added a new table function, TableName.KeyColumn.RowForKey(keyValue) that returns the
row index of the row for which the specified KeyColumn has the specified keyValue (or zero if no row is
found). It’s important to note that this function respects master-detail relationships, and only looks at
the detail row subset for a given master row selection (and returns the row index as related to that
subset, not the overall index).
Thus, the user could have a table, Resources, as below, with the ResourceName as the key column. The
following expression, Resources. ResourceName.RowForKey(Weld1) would return the value ‘8’.
The function could alternatively be used to access other information within the Resources table for a
given key value. Resources[Resources. ResourceName.RowForKey(Weld1)].ObjectType would return
‘SchedServer’.
The keyValue may also be an expression that holds the information, such as an entity object state,
‘ModelEntity.WhichWorkstation’.
Previously, the Search step could be used to access the row information. This new function method is
faster than using Search step to access the same information, especially with large data table searches.
Table Referencing Enhancement – Using Associated Objects for Candidate Objects Table References
There is a new compatibility bit “Search Associated Objects Of Candidate Objects For Table References”
Default value of this setting is ‘False’ for models built prior to Sprint 11.191, ‘True’ for new models built
in Sprint 11.191+.
In the past, when using the Candidate.TableName.ColumnName, for example, within an Entity
Destination Type > Selection Condition, the candidate column required node name references. Many
times, however, the data within a table may include the associated object names (Server names) and
not the node names. Thus, as an enhancement when using the Candidate.TableName.ColumnName
nomenclature, Simio will now search for either the object or associated object to find a value. This
includes Search steps and any other construct where Candidate.TableName.ColumnName can be
specified.
As an example, the user could have a TransferNode that selects the Entity Destination Type from a list of
nodes. The options in the list contain multiple nodes that are associated with Servers. There is a table,
named Resources, that includes the Server names and some associated columns such as Cost,
WorkSchedule, etc. The Selection Condition on the TransferNode can now reference
‘Candidate.Resources.Cost <= 30’ where the node names are not listed in the Candidate table, but the
associated Servers and their cost column are evaluated as the candidates for selection.
It’s important to note that if the table schedule Start Date is AFTER the simulation start date, Simio will
assume 0 capacity (no schedule specified in table) for the first X amount of time from simulation start
date through schedule start date, then repeating after Interval time.
As an example, let’s say the simulation start date is 6/09/19 and the schedule starts 6/10/19 and
contains a single day of schedule/capacity times. If the repeatable interval is 1 day, it will include
6/09/19 of 0 capacity and then repeat, thus the 6/10/19 schedule will not be realized. If the repeatable
interval is 2 days, it will include 6/09/19 of 0 capacity, then 6/10/19 schedule from table and then
repeat.
This sprint we have enhanced our trace options and added a shortcut for starting Simio64 and a Flow
Library enhancement. Support for Sketchup 2019 and a Gantt search feature have also been added.
Trace Enhancement
There is a new “Trace Type” selection under the “Advanced Options” in the “Run Setup” group of the
“Run” tab of the “Facility Tools” ribbon category. “Trace Everything” is the default. The selection is saved
per model.
UI Responsiveness
There is a new “Minimum number of UI updates per second” entry in the Advanced Animation dialog.
It’s defaulted to 5 and provides much better UI responsiveness for otherwise unresponsive models.
In this example, searching for 21 matched a row containing that string, while searching for 101 finds the
row for Order_101:
Also within the Planning tab, if a user double-clicks on an order/entity within the Target Detail tab, the
user is taken to the same order within the Entity Workflow Gantt.
But if you set that scale to, say, 200 it would look like:
Welcome to our release version of Simio 11! This sprint, check out our new UI icons and skin, as well as
a new SimBit displaying a few of the possible dashboards within experiments.
New Icons
We have updated our UI skin and icons on all the ribbons, tabs and panels, we hope you like the new
look!
New SimBit
DashboardsWithinExperiments – This example is a modification to the SimBit
ServerUsingTaskSequenceWithWorkers and includes an experiment where the number of workers and
other properties can be changed. The new Dashboard Reports feature within Experiments has been
used to include graphical dashboards that display response results either within a scenario or across
scenarios.
Where’s the Rest?
In case you are a history buff who would like to see a sprint by sprint account of how we got to this
point, you can find that here:
http://www.simio.com/downloads/public/documents/SimioHistoricalReleaseNotes.pdf. This contains
records from the first 189 sprints (0-188) covering the generation of Simio major releases 1 – 10,
with a few of the sprints within release 11.