Release 2, Sprint 41

This sprint provides enhancements to the standard library (Source) as well as additional engine-level capabilities (Remove) and enhanced output analysis (Subset Selection, Ranking & Selection). In addition you will find the GUI easier to use (Units, Expression Editor, and Display Lists), improved utilization statistics, and even easier animation with the new Node behavior.

Subset Selection

A new button has been provided on the Experiment Design ribbon to help you determine which of a set of active scenarios is the best. If you provide a Response Objective (Minimize or Maximize) in an experiment and have run at least 2 replications of each (10 or more recommended), Simio will automatically divide the scenarios into those that are candidates for the best and those that are not for each response.

Enhanced Support for Units

While we have always had support for units on selected properties, we have now extended that support throughout the product.

  • Units are now labeled in reports and the pivot grid
  • You can change the display units from the Home, Pivot Grid and Reports ribbons
  • States now have a “Unit Type” that can be set to indicate the class of items the state deals with (Time, Distance, etc…)
  • Numeric properties (like Expression) now have a “Unit Type Property”. This can point to a state property, which means “Pull my unit type dynamically from whatever this state property is referencing”.
  • You can use the Assign step to assign a state a unitized value, depending on the class of the state. For example a Time state can be assigned a value of 100 Minutes
  • In an expression, we now take into account a state’s unit type. For example, if a Time state (A) is assigned 60 Minutes and you do a delay for “A + 10” (Hours) you will delay for 11 hours
  • In the watch window, if a state (or element function) is classified as having units, we show the value (in the base Simio units of hours, meters, meters per hour)
  • You can set units on States, Outputs and Tallies

Resource Statistics

Calculating resource utilization has always been problematic because people have different ideas on what it means. We have solved that problem by building in several common definitions as well as providing object builders with the tools to create custom definitions.

  • We already had significant information on each resource state including %, time, and occurrence.
  • We have refined Units Scheduled and Units Allocated statistics.
  • We have added Scheduled Utilization which is the average capacity utilized divided by the average capacity scheduled.
  • The standard library objects have clearly defined “Utilized” states such as Busy, Setup, and OffShiftBusy.
  • Object builders can implement their own definition of Utilization by specifying if each state should or should not be considered utilized (e.g. perhaps you consider Setup as Not Utilized).

Ranking and Selection Add-in

Often your experimentation will produce multiple scenarios that appear to have roughly similar results, but with differing variability. We supply an experiment add-in named Select Best Scenario Using KN based on work by Kim and Nelson that will compare scenarios and iteratively run additional replications to reduce the variability enough that the best alternative can be reliably determined.


  • Node Sizes: No matter what the zoom level, nodes are now always displayed at a size that they can be seen and selected. Previously node sizes changed with the zoom level, sometimes making them to small to easily select or inappropriately large for the model.
  • Node Placement: The locations of nodes can now be adjusted in the user view of derived objects.
  • Node Parking: A default parking area is supplied adjacent to each node. Whenever an object (such as a vehicle) parks at the node, if Parking Queue is enabled on the Apperance ribbon, then the object will display on the default parking queue. If you want to customize parking in any way you must disable this option and manually add the ParkingStation.InProcess queue.

Population Member Indexing

It is now possible to directly interact with properties of a specific vehicle or entity. Previously it was difficult to do so unless you had a token for that entity. You can now use a bracketed index to reference directly to a specific member of the population. For example “Truck*3+.ResourceState” could be used in a pie chart to show the resource state of the 3rd object named Truck in your system. You can also use expressions for the index and even nest these. This works in State and Event properties, Expressions, and in references on animation objects

  • Any agent instance name followed by brackets, with an expression in those brackets giving the index into the agent population, for example:
    • Vehicle[1].SomeFunction
    • Vehicle[1 + 0]. SomeFunction
    • Vehicle[Vehicle[x].SibilingVehicleIndex]. SomeFunction
  • They also work for agents inside of other agents:
    • AircraftCarrier[2].FighterPlane[5].Missle[3].TargetIsLocked

Expression Editor

We have improved the expression editor to make it clear when there are additional optional choices available for a function. When you the expression has enough to be considered complete, it will be displayed in bold. When additional choices (required or optional) are available, you will see an indicator that more choices are available.

Drop Down Lists

Any drop down list that could have lots of items now includes a filter at the top that will limit the choices to only those containing the specified characters. For example, typing “server1” into the filter will limit choices to only items involving Server1, or typing “capacity” will limit it to only items involving capacity.

Resized Standard Library Object Symbols

The size of many of the default library symbols have been adjusted to provide a better balance relative to each other and more appropriate to the models that are typically built.

SMORE Plot Enhancements

The SMORE plots help you analyze and compare scenarios.

  • Histogram: The response chart ribbon now has button to optionally display a histogram. The frequency of the values from the replications is expressed as a histogram superimposed on the side of the box plot to give you additional insight into the data’s variability.
  • Rotation Option: The response chart ribbon now has button to optionally rotate the display by 90 degrees. In certain situations this provides a more effective display.

Enhanced Support to Renege From Waiting In A Queue

You may now use the Remove step to remove an object waiting in a queue. This is often necessary to implement a maximum waiting time, preemption from a queue, or other reasons to leave a queue. Removal is supported from the following types of queues:

  • Resource Object ‘AllocationQueue’ (to cancel waiting activity at a Seize step)
  • Station Element ‘EntryQueue’ (to cancel waiting activity at a Transfer ‘To Station’ step)
  • Link Object ‘EntryQueue’ (to cancel waiting activity at a Transfer ‘To Outbound Link’ step)
  • RoutingGroup Element ‘RouteRequestQueue (to cancel waiting activity at a Route step)
  • BatchLogic Element ‘ParentQueue’ and ‘MemberQueue’ (to cancel waiting activity at a Batch step)

Source Object ‘Stopping Conditions’

There is a new ‘Stopping Conditions’ property category in the Source object that allows you to easily stop arrivals generated by the source using one or more of the following conditions:

  • After a specified Maximum Arrivals has occurred.
  • After a specified Maximum Time has elapsed.
  • After a specified event has occurred.

Enhanced Object Behavior

  • Destination Selection: The queue selection algorithms for the RoutingGroup Element’s ‘RouteRequestQueue’ were updated such that the first eligible route request in the statically ranked route request queue is now selected. Previously, only the first queue item in the queue could be selected as long as it was eligible.
  • Searching: The Search step can now search Node Lists.

New SimBits

  • RemovingFromAllocationQueue - demonstrates how the new Remove capability can be used for reneging from an allocation queue.
  • TallyStatisticsInTables - shows how to use TallyStatistics in combination with tables to collect different types of statistics based on a condition or entity type.
  • VehicleWithVariableRideCapacity – show how to have a vehicle determine how many entities it will pick up next.

Updated the System Menu and the Applications Menu buttons

Similar to Office 2010, we added a System Menu button (a tiny flow chart) in the far upper left corner and we have changed our large application button to a smaller highlighted menu icon just below