Release 3, Sprint 46

This interim release has only a few new features because we are now putting a significant effort into new features for Model-Based Decision Support. You will see that effort paying off in the near future. But in the interim, you should find the following new features to be valuable.

Read/Write handles string states and string expressions

The Read Step and the Write Step now support reading and writing to and from String states and DateTime states in Simio, as opposed to just numeric States.

Disable Randomness

A Disable Randomness button has been added to the Run ribbon. Disabling randomness is often useful to facilitate verification and debugging, and for generating deterministic schedules. If randomness is disabled, any random distribution reference will return the expected value instead of a random variate. Additionally any probabilistic selection in the logic (e.g., probability based Decide step, link selection weights, the table property RandomRow function, Random selection goal in Route step) will always select the choice that includes the 0.5 (or "50%") cumulative probability.

Name Expression Keyword

We've added the function 'Name' for objects which will return the name of the object in string format (i.e., "Server1"). This can be useful for writing out useful information to floor labels and/or files.

View Filters on Data Table

Filtering for the data grid in tables has been added. Now you'll see a small filter icon on each column, and a bar at the bottom to turn the filter on/off, see your most recent filters, and edit the filter. This makes it easier to view important subsets of a large data table.


We have added the capability to test multiple conditions and return one of a defined set of expressions. The 'Math.If' function has been expanded to now accept multiple test, value pairs using the following format: Math.If(test1, value1, test2, value2, test3, value3,..., otherwise value). For example, Math.If(Is.Airplane, Airplane.OrderID, Is.Order, Order.Id, Is.Part, Part.OrderId, 0).

New SimBits

We have added 4 new SimBits to our extensive SimBit library. Three of those SimBits illustrate the use of tables and the repeating group property interface, while the other demonstrates the use of the expanded Math.If and String States. These include:

  • TableReferenceInRepeatingProperty.spfx uses a table to store data about the entities and assignments that will be made, as well as the worker type to seize for transport.
  • RelationalTablesInRepeatingProperty.spfx shows multiple workers being used at various workstations based on the entity types that are processing. The worker and entity data is stored within relational tables.
  • SourceWithCustomEntityTypeProperty.spfx uses a 'sub-classed' Source to allow user-defined entities / probabilities to be specified for entity creation.
  • StringStates.spfx uses the string states and the new Math.If capability to graphically show the status of entities being processed.

Data Validation

We have taken advantage of the new data types (like Integer and Boolean) to enhance our data validation. For example if you try to assign a value of 2.56 to a CurrentCapacity, you will now get an error because CurrentCapacity is defined as an Integer. See the Known Anomalies on the Simio Start page for important conversion notes.