Release Notes for Sprints 103-106 – June 2014

What's New Since March?

Simio continues to change the landscape of simulation -- making Simio easier to use and more flexible, while adding still more technology breakthroughs. Our academic offerings leave no reason to go elsewhere. Why continue paying to teach outdated software when you can teach the latest at no cost?

This page highlights some of the wealth of new features that have been added in the last three months including significant new input analysis features supporting the latest work by leaders in the field.
Read on to find out more...

Input Parameters and Data Analysis

We’ve set a new bar for Input Analysis by implementing work by Dr. Barry Nelson and Eunhye Song. We have enhanced the recently introduced Input Parameters with an Input Analysis section of Experiments. Here you can easily and automatically determine how sensitive each of your responses is to your input parameters.  You can also optionally extend your analysis to determine how your response error is affected by the data associated with your input parameters. You can even determine the relative value of collecting extra data for each of your input parameters.

Input Parameters – New Distributions and Table Value
The new Input Parameters section of data within the Data tab now includes two additional input parameter types, including Distributions and Table Values. With distribution type, the input parameter defines data that can be sampled during the model run. This typically is taken from real world data that has been sampled and fit to a distribution. With table values type, the input parameters define data that is sampled directly from a table column as recommended by recent research for improved accuracy. These input parameters can then be evaluated within the Input Sensitivity section of an Experiment to determine how sensitive various responses are to those inputs.

Response Sensitivity and Sample Size Error Analysis
Simio now incorporates two types of input data analysis that relate the Input Parameters of a model to the Responses defined in the experiment. Both of these are found in the Experiment window under the Input Analysis tab.

Response Sensitivity analysis is used to determine the sensitivity of the Responses to changes in the Input Parameters. Response Sensitivity analysis is very useful in situations where the input parameters have been specified in the absence of real world data and shows which Input Parameters have the biggest influence on the Reponses. Response Sensitivity analysis can be used early in a modeling project to help guide decisions on devoting time/money to initially collect real-world observations for input parameters.

In contrast Sample Size Error analysis is performed once some real-world data has been collected and is used to determine the overall impact of estimating the Input Parameters (based on real-world data) on the uncertainty in the Responses, to determine which estimated Input Parameters make the largest contribution to this uncertainty, and to identify the Input Parameters for which additional real-world observations would have the greatest benefit in reducing the uncertainty in the Responses. 

Processes Window

Properties Spreadsheet and Multi-Select
In sprint 101, we added a new Properties Spreadsheet window (Properties button on the Project Home ribbon) that allowed users to view and edit the Facility window objects in a spreadsheet format. We’ve now enhanced this feature to include the viewing/editing of Processes as well as Steps within Processes window. The ‘Click Here to Select an Object Type’ now includes Objects, Process and Steps and has additional menus to select the particular object type or step type desired, based on what has been placed in the model.
Editing of multiple steps may now be done through the Properties spreadsheet as shown below. Copy/paste can be used within the grid. Additionally, we’ve added the multi-select option for selecting multiple steps. This feature allows similar properties to be edited through the Properties window.

Multiple Passed and Returned Values on Execute Step
Simio now supports the ability to pass input arguments and return values on executed processes. This allows single shared processes to be executed within multiple objects. Processes now have a repeat group where you can identify, for the token class, the Input Arguments and Return Values.

For tokens Input Arguments, the State Name Variable should always be a state on a custom token, where that custom token is specified as the Token Class Name of the parent process. Doing otherwise could cause modeling problems. Making it a token state makes sure that each token has its own unique value. Specifying a state variable here indicates that when the process is executed, the value of this Input Parameter will be assigned to that state.

Once the Input Arguments have been defined, they will appear anywhere their parent process is referenced (ex: in an Execute step, an Add-On Process, etc.). Note that the Input Arguments will pick up the unit type (if any) from the state referenced in the State Variable Name of the Input Argument. Refer to SimBit MultipleInputArgumentsOnProcess for an example on how to use this feature.

For token Return Values, the expression here is evaluated in the context of the process and it’s token. When the process is finished, the value of this expression is assigned back to a state variable specified. These Return Values will appear anywhere their parent process is referenced (ex: in an Execute step or an Add-On process).

Triggering Event Condition
A new property has been added to a Process within the Processes window. The Triggering Event Condition will allow users to specify a condition that must be evaluated to true in order for the process to be triggered by the event.

Process and Step Description Changes
There have been modifications made to the Process window to allow for better Process and Step documentation. The first is an increase in the length of a Step’s Description property. In addition to this increase, the Step Description is now visible when you hover over the Step. The Step Description now appears in the Documentation Report. Finally, the Process Description property has been increased from the previously displayed 2 lines.

Ease of Use Features

Support Ribbon – New Expression Reference Guide
On the Support Ribbon, there is a new button that will generate an Expression Reference Guide custom created for the constructs used in your model. Clicking on this button will generate an Expression Reference Guide html document which will be opened in your default browser. This document lists the Simio built-in functions, keywords, states and elements. It also lists the functions, states, events and elements for those objects that you have placed in your model. This can be very useful for finding and learning about the rich model information available in Simio.

Enhanced Expression Editor (Auto-Completer)
When you are using the expression editor, the drop-down auto-completion choices for all of the function namespaces now display icons as well as tool-tip description text.

Settings GUI Option to Dock Windows
Within the File, Settings > Application Settings window, there is a new option under GUI to allow users to restore windows docking locations to the same location when Simio was last shut down. This was a user requested feature.

Repeat Group Window Sizing
We now save the window size of the repeating editor, so if you resize it, then close it and open it again later (in the same Simio session or in a later one), it comes back in that same size. This was also a user requested feature.

Freeze Scenario Name when Scrolling Right
In the Design tab of the Experiment window, the Scenario Name and Scenario Status columns now remain stationary when scrolling to the right in the window.

Flow Library Enhancements

Stop Early Event Name for Converter Objects
We have extended one of theFlow Library enhancements from Sprint 102 (Stop Early Event Name) to the ItemToFlowConverter and FlowToItemConverter objects. These objects now have an optional event to allow additional control over triggering the stoppage of a conversion process early before reaching the specified ‘Flow Quantity Per Item’ target. This feature was put into the Filler and Emptier in the previous sprint.

Container Statistics on Tank, Converter Objects and ContainerEntity.
For the objects with associated flow containers, we’ve added statistics on the state of the flow container. This includes the Tank, ItemToFlowConverter, FlowToItemConverter and ContainerEntity objects. The statistics include such information as TimeEmpty, TimeFull,and  TimePartiallyFull. Tank also includes VolumeCapacity or WeightCapacity. These statistics were possible because of a new Container AutoStates associated with the Container element. These built-in autostates include Empty (0), PartiallyFull (1) and Full (2). The objects within the Flow library then include a ‘FillStatus’ list state variable based on these autostates.

Suspend and Resume Steps
The Suspend and Resume steps have been enhanced to include the option to suspend and resume a flow regulator’s flow capability.
This enhancement allows you to suspend/resume any flow through a regulator that is independent of assigning values to the regulator’s Enabled state or CurrentMaximumFlowRate state, thus avoiding possible conflicts with other user-assignment logic. Additionally, because the Suspend step allows users to easily apply multiple simultaneous flow suspensions to a regulator, it will now also be easier to have multiple features independently suspending/resuming the flow capability of some specific regulator without worrying about possible conflicts between those features (e.g., one Tank feature renabling its ‘Input’ flow regulator when other active Tank feature still needs that regulator disabled).

The Tank & FlowToItemConverter objects in the Flow Library now use Suspend and Resume steps to suspend inflow into the object while the ‘New Inflow Entering’ add-on process is being executed (if that add-on process trigger is being used). We suspend the inflow if that add-on process is being executed to account for any possible customized ‘Setup/Cleaning’ delays that a user may choose to incorporate in that process logic when new inflow begins to enter the tank or the converter.

New Modeling Capability

Access to Changeover Matrix Data in Expressions
The ability to access changeover matrix data in expressions is now supported. A changeover matrix value may now be referenced in any expression using the syntax MatrixName[row,column], where the row and column subscripts are numeric constants or expressions that return zero-based row and column indexes into the matrix. When you add a changeover matrix to a model, you will see the available changeover matrix syntax within the expression builder.

Also implemented is the ability to support specifying the name of a changeover matrix in an object property (repeating or non-repeating). Then that object’s process logic is able to get to the matrix data through the property reference. First you do this by adding a Changeover Matrix Property to the model by going to Definitions/Properties and selecting Standard Property and Changeover Matrix. Then in the process logic of the object that has the property, you can use the syntax for ChangeOverMatrixPropertyName.Matrix[row,column] or RepeatGroupPropertyName. ChangeOverMatrixPropertyName.Matrix[row,column] to access a value at a specified row and column index location in the changeover matrix that is being referenced by the property.

You can also use the syntax ChangeoverMatrixPropertyName.Matrix.Name to get the string name of the changeover matrix that has been specified using the property.

Transfer Node – Entity Destination Type Enhancement
Within the TransferNode object (and all objects that include the TransferNode, such as Source, Server, Workstation, etc.), we have added a new option to the Entity Destination Type for routing from the node. This property now includes the option to ‘Use Custom Routing Group’. If you select that choice, the name of the Routing Group element to use is specified. Note that this is an advanced alternative option to route each entity to a destination selected from a list of candidate nodes (versus using the ‘Select From List’ option).

Use cases for this new option include:

  • If you are modelling blocked routing behaviour and have entities waiting at multiple TransferNode objects that are trying to route to a destination selected from a common node list, and you want a common set of decision rules to apply to all of those entities (e.g., entities at one location perhaps prioritized over entities at another location when a destination becomes available, etc.), then this option is available to use.
  • If you are modeling blocked routing and want more advanced control over how a waiting entity is selected when a destination becomes available (e.g., using a static ranking rule for the RouteRequestQueue that is not FIFO or using a dynamical selection rule for more advanced ‘pulling’ of entities), then this option is available to use.
  • If you want to customize the conditional expression which indicates whether a destination node in the list of candidate nodes is considered ‘blocked, rather than using Simio’s default condition, then this option is available to use.

SimBits

Shift-Click to Open SimBit in Existing Simio Instance
In the past, within the .Sample SimBit Solutions window, a particular example was opened by clicking on the SimBit name. This would open the SimBit inside a separate instance of Simio using the unlicensed evaluation version of Simio. Within this sprint, you may now use the Shift key while clicking on the SimBit name to open the SimBit within the existing Simio instance. Any model that you currently have open will be closed and you will be asked to save the model before closing if changes had been made.

CustomRoutingGroup.spfx
This model illustrates the use of the new Entity Destination Type option of ‘Use Custom Routing Group’. Entities from two sources feed into three servers using the same logical routing group logic so that when a server is available, it ‘pulls’ from the same queue of waiting entities, even though the entities are physically located at different servers.

MultipleInputArgumentsOnProcesses.spfx
This model shows how the input arguments on a process can be used to store information for multiple objects accessing the same process within a model.  

InputAnalysis.spfx
This project consists of two models that demonstrate the new input sensitivity features within the Experiment window. Both the Response Sensitivity to input parameters, as well as the Sample Size Error based on input parameters, are included.

Entity & Link Functions

Entity.EntityType
Returns a reference to the entity type of this entity. Possible uses of this function include:
· Referencing it in the Entity Type property of a Create step. For example, if you wanted to create a new entity of the same entity type as the first entity located in a station location, you could do Create new object with Entity Type = TheStationName.Contents.FirstItem.Entity.EntityType.
· Referencing it as the entity type to search if using the Search step to search an entity population. For example, you might say to Search an entity population with Entity Type = Entity.EntityType to search the entity type of the executing token’s associated entity.
· Using it to save an entity type into a state variable, such as the Flow Library Tank perhaps saving the entity type of the last inflow entity into a LastInflowEntityType variable. And then can compare the value of that state variable with the entity types of the next inflow entities to detect when the inflow entity type has changed.
· Referencing the string name of an entity’s entity type using the syntax Entity.EntityType.Name.

Link.Vertices.NumberItems
Returns the number of vertices in the link.  Note that these are the "interior vertices", meaning the end points of the link are exclueded, since those are already available via the nodes at each end. A straight link between two nodes would return 0 for NumberItems.

Link.Vertices.ItemAtIndex(index).X
Returns the current location of the specified vertex along the X axis of the Simio grid.

Link.Vertices.ItemAtIndex(index).Y
Returns the current location of the specified vertex along the Y (vertical) axis of the Simio grid.

Link.Vertices.ItemAtIndex(index).Z
Returns the current location of the specified vertex along the Z axis of the Simio grid.

Reporting Your Results

Status Pie Enhancements - Legend Labels with Spaces and Option to Show Zero Values
When displaying a Status Pie legend with List states that have no spaces, spaces are now automatically entered when there is a capital letter in the name. For example, a List value of Line1Idle will appear in the pie chart legend as Line1 Idle.

The ability to hide zero values on a pie chart is available on the Appearance ribbon. Toggling this button on or off will enable or disable zero values of the Repeat Group or List expressions in the pie chart legend.

Displaying the Named View on Pivot Grids
When naming a view on the pivot grids, the name of the view now appears under the pivot grid tab. This is true for pivot grids generated during a model run or during experimentation.

List State Enhancements
The Results Classification of properties, including Data Source, Category and Data Item, have been added to the List State type of State variable within the Definitions / States of a model. This feature provides user-control over specifying the various properties used to classify results automatically reported by a list state variable.

Dashboard Reports – Data Source Ribbon
We have added the Data Source ribbon tab in the dashboard reports designer, so now users can connect to an arbitrary data source, such as a database, to get data for their dashboards. For additional information, see the Help section on this.

Enterprise Edition Features

Report Designer

The Report Designer allows users to create a custom Report based on generated model data. Reports can be made using data from the Interactive Model Results (i.e. the data displayed in the Pivot Grid), the Resource Usage Log, the Resource State Log and the Constraint Log. The Report Designer is available on the Reports ribbon.

Gantt Enhancements
User Defined List State can now be displayed in the Resource Plan Gantt. If an object that is Logging Resource Usage and therefore appearing in the Resource Plan Gantt, and it contains a State Statistic for a user defined List State, the State Statistic will be displayed in the Resource Gantt if the Log Observation property on the State Statistic is set to 'True'. There is a new button in the Gantt Ribbon that controls if State Statistic rows should be displayed or hidden.

Resources and entities that have not completed a Seize at the end of the model run will now be displayed in the Gantt charts, with three dots following at the end. This indicates that the End Time of the Seize is unknown and has not happened as of the time of the run completion. Previously, an entity or a resource that had not been released when the run ended would not appear on the Gantt.

Visibility options on Entity Workflow Gantt
On the Gantt ribbon within the Entity Workflow window Gantt, we’ve added buttons to toggle on and off the Targets and Constraints. Similar visibility options have been available within the Resource Plan Gantt for several sprints.