Simio Release 1.0, Sprint 26 -- September 7, 2009
Optimization of Execution Speed and Trace
- We have added Step Exclusion features to allow users to better optimize the performance of
custom objects and we have used those same features to optimize Standard Library Objects.
Depending on your model, you will find that our standard library executes from 20-50% faster
compared to the previous sprint.
- We have also significantly reduced trace. Excluding steps has eliminated much of the
"uninteresting" trace resulting in up to 60% less trace, with no loss of meaningful content. We
have also improved the trace formatting. These changes will make it easier to understand and
follow what is happening in the trace.
Arrays/Tables
- A state array's size and initial values can now be "bound" to a data table. If you chose the new
[Table] option in the Dimension property of a state, it will bind that array to a table. When
bound, the array size will be automatically initialized from the number of rows and numeric
columns in the table, and the array data will be initialized from the data in the table as well.
- Look for the new Import From button on the Table ribbon. This allows import data from Excel or
CSV into a table. (See Grid Data Providers below).
- Look for the new Bind To button on the Table ribbon. This allows you to bind a table to an
external data source and cause it to be automatically refreshed from the external data just
before a simulation runs.
Model Building Support
- On the project Home ribbon tab, you will find a new Processor option under the New Model >
Fixed Class button. This takes the tedium out of creating a new object by automatically adding
basic "plumbing". It creates a Fixed model with an input and output node, a station, external
view, and a stub process for doing things. Everything is created and wired up, waiting for the
addition of your process code to complete the object.
- On the project Home ribbon tab, you will find a Select Add-In button. This allows for user coded
design add-Ins, which allows .NET code to do basic design in the Facility view. This is useful for
doing things like translating data files into models, or quickly building ready-made models. A
sample is included that creates a Source-Server-Sink model in one click. The code for this and
other user code extensions can be found under \Examples\UserExtensions.
- Allow for user coded Grid Data Providers, which allows .NET code to provide "grid shaped" data
for use in importing into Simio Data Tables. Two examples are included, one for reading data
from CSV files, and one for reading data from Excel spreadsheets. Someone with programming
background can add custom interfaces for any import source including your own custom
database.
Step Exclusion Expression feature (Process View)
- You may now specify an Exclusion Expression for any step in a process. This feature is useful for
temporarily removing logic from your model or optimizing your object's performance by only
executing steps pertinent to property values entered by the user of the object.
- If specified, this expression will be evaluated at the start of a simulation run to determine if this
step should be excluded from the run. If this expression evaluates to 1, this step will be
excluded, and tokens will flow directly to its primary exit. If this expression evaluates to 2, and
this step has a secondary exit, the step will be excluded, and tokens will flow directly to its
secondary exit. If the expression evaluates to any other value (typically 0), the step will remain
active in the process.
Please refer to important compatibility notes in Known Anomalies (See Simio Start Page)
Miscellaneous Changes
- A Dynamic Selection Rule was added to the Station element. It allows you to specify a userdefined
rule for selecting the next entity to enter the station. Server, Workstation, and
Separator objects take advantage of this. If there is a zero-capacity input buffer and a dynamic
selection rule is being applied, the next entity to be processed by the object will be dynamically
selected from the upstream links/buffers connecting into the object.
- User defined Selection Rules are now available in the RoutingGroup
- Added time units for a changeover matrix
- Copying a process now copies the image of the process to the clipboard as well. This is
particularly useful for creating external documentation of your processes.
- An Intelligent Object is the common base class of all objects that allows it to be seized and
released as a resource. The resource allocation queue of an Intelligent Object is now a regular
queue state, which means it can be queried and animated just like any other queue.