Simio continues to aggressively introduce innovations that are changing the landscape of simulation and stimulating new development across the industry. We are continuing to make Simio easier to use and more flexible, while adding still more technology breakthroughs. And 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 enhancements to the Flow Library, a new Spreadsheet View to view and edit your objects, the ability identify important input parameters by running Sensitivity Analysis, a state-of-the-art way to represent Random Input Data, new Express Edition Capability, new SimBits, and lots of other User-Requested Features.
Read on to find out more...
The ItemToFlowConverter object may be used to model a process that converts entities representing discrete items into flow entities representing quantities of fluids or other mass. The flow rate out of the object is regulated by the ‘Output’ flow node. Discrete item entities enter the object through the ‘Input’ basic node and are then processed into flow.
The FlowToItemConverter object may be used to model a process that converts flow entities representing quantities of fluids or other mass into entities representing discrete items. The flow rate into the object is regulated by its ‘Input’ flow node. Discrete item entities exit the object from its ‘Output’ transfer node.
We have added some user requested enhancements to the Tank object within the Flow Library. Changes include the addition of the new level locations of ‘Low Low’ or ‘High High’ marks, as well as optional add-on process triggers and built-in state assignments for when the tank level is rising above or falling below those marks.
Additionally, within the Tank object, we’ve added ‘New Inflow Entering’ add-on process trigger and state assignment features. These optional state assignments and add-on process triggers are used when a new inflow is starting to enter the Tank object, which may be either the first inflow into an empty tank or a change to the inflow entity type into a partially full tank. This functionality is consistent with the new FlowToItemConverter object as well.
Filler and Emptier Enhancement – Stop Filling / Emptying Event
Both the Filler and Emptier now allow a user to optionally define the name of an event that will stop filling or emptying a container early, before reaching the specified fill or empty target. A simple example for a Filler might be to fill a container until it is full or until a Source tank is empty (the tank becoming empty being the ‘stop early’ event), whichever occurs first. Similarly, an Emptier might be emptying a container until empty, or the destination Tank is full, whichever occurs first. This new property can be used to model any kind of ‘Stop Early’ signal situation.
Tank, ItemToFlowConverter and FlowToItemConverter Enhancements - Purge Content Triggers Repeating Properties
The Flow Library Tank object, as well as the ItemToFlowConverter and FlowToItemConverter objects, now provide some optional event-driven triggers (using a basic ‘event-condition-action’ rule design), that will immediately remove and dispose all of the Tank’s contents, putting the Tank into an empty state. Multiple Trigger Event Name properties and associated Condition properties can be specified for each object to immediately empty any contents in the tank or converter’s flow container within the associated object. This is useful when modeling different product types and cleaning the tanks upon changeovers and such.
Within the Project Home ribbon, Windows section, we’ve added a Properties button that will open the new Properties Spreadsheet window that allows property data for specific objects to be viewed and edited within a spreadsheet format. To view data for a particular object (i.e., Server, Source, Path, etc.), either select the object type from the top right of the Properties Spreadsheet window (‘Click here to select an object type’ and select the type of object) OR right click on an object of that type and select ‘Open properties spreadsheet view for all objects of this type… ‘.
Within the Properties Spreadsheet window, you can edit single property entries for a given object or copy/paste values into multiple columns. To select multiple entry rows, you may click a row, then use Ctrl-click to highlight additional rows – editing of multiple rows simultaneously can continue to be done within the Properties window on the right.
Filtering and sorting the object list can also be done based on a particular column, similar to table functionality. Scroll bars are also available for objects with many properties and/or categories. Right-clicking on a particular row will allow you to ‘Navigate to ’ the particular object selected within the Facility window.
Within the Data tab of a model, there is now a new Input Parameters panel icon. An Input Parameter allows you to define an expression. The input parameter name can then be used in another expression within the model. For example, you could define an Input Parameter with the Name ‘TicketingTime’ with the Expression value ‘Random.Uniform(1,10)’, as shown below. Then, in a Server's Processing Time property, you may reference that input parameter as ‘TicketingTime + 5’.
Right-clicking on a property value of a given object also allows you to ‘Set Input Parameter’ or ‘Create New Input Parameter’, similar to setting a referenced property value.
In conjunction with the Input Parameters, we’ve added the ability to run sensitivity analysis on the various input parameters defined from within the Experiment. Within a given experiment, there is now an Input Sensitivity tab that includes the Bar Chart, Pie Chart and Raw Data window ribbons.
This collection of features represents our latest contribution to make it easier to analyse your data and to determine how reliable it is and where you might implement improvements. This provides objective information to help judge the merits of improving the data or estimates for the various inputs.
Many times users have simulation data in the form of real actual data which then must be read into an input analyser to determine the best fit distribution to use within the simulation model. We have added a new table function that will allow users to alternatively input the actual data into a table and randomly select the data from that table.
Returns the value of the property (table column) for a randomly selected row in the table, where each row has an equal probability of being selected.
If the table has primary key/foreign key relationships, and the active token or object is referencing a row selection set in the table, then this function will return the value for a row randomly selected from the related rows only. Otherwise, the row will be randomly selected from all rows in the table.
If randomness is disabled in a model and the 'RandomValue' function is utilized, the following behavior will be exhibited. If the table property (i.e., table column) is a numeric property, then the ‘RandomValue’ function will return the average value of all rows for the property. If the table property is non-numeric (e.g., a column of strings or object references), then the function will return the value of the middle row in the table (i.e., the row value corresponding to .5 cumulative probability).
We have provided users of Enterprise Edition the ability to specify that a particular object may be loaded into Express Edition. Previously Simio Express was restricted to loading only the Simio Standard Library.
Corporate groups and independent consultants wishing to deploy a custom Express Edition-based solution will find this particularly useful.
This project includes two models demonstrating two different ways to model a continuous system / system dynamics with an infection propagation example. The UsingFlowObjects model utilizes the Flow Library objects including Tanks and FlowConnectors, while the UsingLevelStates model utilizes state continuous variables and functions.
This project contains a simple elevator object. It consists of 2 transfer nodes and a bi-directional path connecting the two nodes. A standard vehicle object is used as the elevator platform that travels between the two nodes. There are two models in this SimBit that use this elevator object to transport entities between floors.
This model demonstrates one approach to animating the travel density of a path. This is done by changing the width of each path so that the width is equal to the percentage of travelers that have traveled this path.
This model illustrates the new ‘RandomValue’ function for generating randomly selected data from a table (added in previous sprint). The top subsystem illustrates using data where you have a standalone set of collected values, for example historical processing times. The bottom subsystem illustrates using data where you have a set of collected values with identifying or categorizing information, for example historical processing times by entity type.
Through our active Simio Insiders User Forum and other means we receive frequent requests for product enhancements. The following are some of the highlights recently added.
Always Orient Vertically option for Link Animation
We have added an option to the Edit ribbon when a Link is selected in the Facility window. This option allows for entities to have an upright orientation regardless of the link angle. This is particularly useful when your link is changing height (like an escalator or inclined Power & Free conveyor) and you want the entities to remain upright, rather than traveling at an inclined angle.
Experiment Scenario Control Values Can Now Be Copied to Interactive Model Properties
As a user requested enhancement, there is now a right-click option on the Scenario column within an experiment. Right-clicking on a particular scenario will now allow users to ‘Copy this scenario’s control values to the model.’ This option will take the values of all the Controls specified for that given scenario and push them into the interactive Model associated with that Experiment.
Enhanced Link Arrows
We have reduced the size of the directional arrows on our links so that they are visible when smaller sized links are placed. The location and performance of the arrows has also been improved.
Processes Window Enhancement – Allow Colors on Steps
Within the Processes Window, there is now an option to color steps in a process. This had been requested by a number of users to help distinguish steps or sections of processes from other sections. The step color is a property that’s available under the General heading. In previous versions, setting a breakpoint on a step in the Processes window changed the color of that step to red. With the ability to add colors to steps, we’ve changed how breakpoints on steps are identified. They will now have the breakpoint symbol to the left of the step, similar to how breaks are identified in the Facility window.
‘Short Circuit’ Evaluation of && and || operators
We now 'short circuit' evaluation of the && and || operators. What this means is that if the first part of expression including the && operator is False, then the entire && operation returns False, and we don't evaluate the second part. Similarly, if the first part of an expression with the || operator is True, then the entire || operation is True, and we don't evaluate the second part. This allows users to create simpler expressions that execute faster.
Per Day and Per Week Options for Volume and Weight Rates
For Properties, States and Expressions that have a Unit Type property value set to ‘VolumeFlowRate’ or ‘WeightFlowRate’, we’ve now added various units per day and units per week options to the list of Default Units.
Design-Time Add-Ins Can Specify Where They Appear in the Ribbons
Users who write their own design-time add-ins can now specify where their add-in appears within Simio's ribbons. There is a new optional interface that can be implemented by the add-in to specify the ribbon category, ribbon tab, and/or group where the add-in should be shown. See IDesignAddInGuiDetails in the Simio API Reference Guide for more information.
Customizable "Common Steps" Panel
You can now choose your own Common Steps. If you're looking at a different steps panel (All Steps or User Defined), you can right-click on a step and add or remove it from Common Steps. On the Common Steps panel itself, right-clicking on step allows you to remove it. You can also use drag and drop to re-arrange the steps on the Common Steps panel, reset to Simio's default set of steps, and adjust the width of the Step panels.
Changed Default Values when Creating New Referenced Property
We have changed the behavior slightly for the default values of model properties that are defined using the right-click on property > Set Referenced Property > Create New Referenced Property. We now will take the current value of the object property from which the model property is created and that will be the default value for the model property. Thus, if you chose to Create New Referenced Property from the Processing Time of a Server that has a value of 2.5, the default value of the new model property will be ‘2.5’.
Create Step - New 'CopySpecificObject' Create Type
The Create step has been enhanced to include a new ‘CopySpecificObject’ option on the Create Type property. An additional new property, Source Entity Object, has also been added to correspond with the copying of a specific object to indicate the specific entity object from which to copy. The Object Instance Name property has been renamed to Entity Type.
Design-Time Add-Ins Can Specify Where They Appear in the Ribbons
There is now an optional interface (IDesignAddInGuiDetails) that an add-in can implement to allow it to show up in the ribbon. You can specify CategoryName, TabName, and GroupName to have full control over exactly where your add-in button will appear.
Table RunTime Performance Improvements
We have made some runtime performance improvement changes for table selections, especially with tables that have a lot of relations between them. Some models with table relations may run up to 3 times faster when making selections on the master table. Models with no table relations should see some performance improvements as well.
Simplified Expression Editor Excludes Function Optional Arguments
We have simplified the use of expression editor to make it easier to enter the most common expressions. The optional parameters are still noted in the pop-up tips and may still be used in the expression, but no longer must be deleted when you are not using them. For example, when using a random uniform distribution, the expression editor will now list Random.Uniform(min, max) and not include the [stream].
Time In System Logging Option on Sink
We have added the option on the Sink object within the Standard Library to Log Time In System Observations. By specifying this property as ‘True’, the individual observations through the Sink will be logged to the Tally Observation Log in the Logs panel of the Results tab.
Material Element Functions / Statistics
We have added three new functions to the Material element and statistics on these functions are automatically generated:
Pickup and Dropoff Steps Enhancement
The Pickup and Dropoff steps now include a Node Name property so that a transporter is no longer required to be located at the node where a pickup or dropoff action is occurring.
Change in Behavior when Entity Enters an ‘Input’ Node
When an entity enters the ‘Input’ node for entering an attached associated object, if the input node has no drawn outbound links then the engine will now always assume the entity’s objective is to enter the associated object regardless of its current assigned destination. For example, if you had a model with 4 sequential servers, if you assigned the destination of an entity leaving ‘Source1’ as ‘Server4’, the entity will now flow through the flow line as expected, exiting Server3 and then routing to Server4.
Previously, in this sort of model scenario, when the entity reached Server1 a runtime warning would occur (and the entity’s progress then stalled) because the engine currently does not have code capable of figuring out a followable network path to an assigned destination that involves passing through objects (or sub-models).
We now support the latest version of Trimble Sketchup, Sketchup 2013, which was released in May 2013. Prior to this sprint of Simio, we supported only versions 3 through 8.
User Interface Tab Enhancements
We have changed our tab views and table views to use the DevExpress docking windows enhancements. To the far right of the main tabs (Facility, Processes, Definitions, Data, etc.) you will see a small drop down arrow on the side to quick jump between tabs. This feature will be especially useful in our table view with models with lots of tables.
You can also float the tab as a separate top level window by double clicking on it, right clicking and selecting float or simply clicking and moving it to another part of the screen. You can then maximize that window as well if you so choose. Control-Tabbing with the Tab button gives you a dialog as well that can be used to quickly move between the various windows.
Enhanced Subscribe / Unsubscribe Steps
We have made changes to the Subscribe and Unsubscribe steps to support some of our Flow Library enhancements. These enhancements additionally make these steps more useful as well. Within the Subscribe step, a new property, Event Condition, provides an optional condition to be evaluated whenever the triggering event occurs. This condition must also be true to cause execution of the specified process. Within both the Subscribe and Unsubscribe steps, the Event (More) repeating properties have been added to allow for multiple events and processes to be specified within a single step.
ObjectType.List.ListName.ListEntry Syntax in Expressions
You can now reference the List keyword inside of an object to get a reference to a value from a List. For example, to assign a value from a String List located in the ModelEntity to a List State located in the ModelEntity, you can now use the syntax: ModelEntity.ListState == ModelEntity.List.StringList.Value. The SimBit named Select Entity Color from String List has been updated to use this new syntax. * Note: In the past versions of Simio, to access that list for an object such as ModelEntity, you needed to have a duplicate list within the Model; this is no longer necessary.