ExtendSim Through the Years
Imagine That Inc. was founded in 1987 to develop and market Extend and its successor ExtendSim, the first simulation applications allowing users of any discipline to use simulation and to develop their own libraries of customized simulation tools.
Imagine That! is dedicated to bringing the art, science, and fun of simulation to the desktop, in a form digestible and accessible by everyone. ExtendSim was the first user-extendible simulation package that met those expectations. Over the last 3 decades, ExtendSim has continued to innovate, establishing many other firsts in the simulation industry.
Learn about the history of ExtendSim here.
Extend 1.0 -- released 1988
Graphical user interface (GUI) for model building
GUI integrated with a simulation programming language for custom development
Includes libraries of blocks (modeling components) for template-based simulation
Blocks are pre-compiled and open source
Interactive during model run
Extensive list of simulation-specific and general purpose functions
Compiled programming language with message handlers
Extend 1.1 -- released 1989
Added discrete event capability in Extend 1.1
Import/export data using menu commands
Additional support for batch and Monte Carlo simulations
Bi-directional flow of data at connectors
Copy and paste blocks and model segments onto the worksheet
Autoscaling of plots
Global variables and ability to pass arrays through connectors
Extend 2.0 -- released 1992
Hierarchical model building - unlimited layers of submodels
Notebook for documentation and centralized input/output
Cloning (functional duplicates) of dialog items onto worksheet or Notebook
Customizable 2D animation of block icons
Messaging architecture for discrete event blocks
Controls (sliders, switches, and meters) for interactive modeling
Global functions and processes so blocks can communicate without connections
Extend 3.0 -- released 1994
Sensitivity analysis
Customizable reports and trace files
Dynamic interface to Microsoft Excel
Create, open, and edit text (ASCII) files
Include files so developers can simplify library maintenance
Extend 3.1 -- released 1995
Windows 3.1, 95, and NT 3.5 compatible version
Throw and Catch blocks - pass discrete event items without connections
New Statistics library featuring confidence intervals, clearing statistics, random seed control, etc.
Preemptive transactions and reneging queues
New DLL functions
Extend 3.2 -- released 1996
Dynamic data exchange (DDE) for Windows and AppleEvents for Macintosh
Native support for the Power Macintosh
Long file names for Windows 95
Tool tips for tools, blocks, and block dialog items
New Popup Menu dialog item for block developers
Extend 4.0 -- released 1998
Activity based costing
Tabbed dialogs and dynamic data tables
Global and local time units
Hot-link to Microsoft Excel and other apps
Popup lists of animation objects for discrete event items
Resource pools
Import AutoCad v12 files
Direct linking to distribution fitting programs
Support for 2.5D animation, with Proof Animation
Scripting to programmatically place, connect, and move blocks
Global arrays and scriptable wizards for developers
Extend 4.1 -- released 1999
Enhanced Find capability
Right mouse button support
Arrow keys to move blocks on worksheet
Improved dialogs in Queue blocks
Line number displayed in ModL code editor
Color coded comments in ModL code editor
Extend 5 -- released 2001
Optimizer introduced - open source
Shift block for scheduled shutdowns
New Help system and electronic documentation
SDI Industry Flow library for rate-based modeling
SDI Industry database for data management
Drag and drop support for ActiveX controls, OLE Automation
ODBC support
Interactive source code debugger and over 100 new functions
Extend 6 -- released January 23, 2003
Explorer-type model Navigator
Zoom /expand control button
Run multiple models simultaneously
Save intermediate results
Multiple icon views
Hide/show block connectors
Object rotation and colored borders
Code completion and colorization
Override functions and message handlers
Linked lists
Watchpoints in source code debugger
ExtendSim 7 -- released December 5, 2007
Product extensively remodeled; product name changed to "ExtendSim"
Added 3D animation with over 100 pre-built 3D objects, plus sounds, shadows, and trails
Next generation integrated, graphical, relational databases for managing data
Dynamic data links (DDL) between block dialogs and ExtendSim database tables or global arrays
Next generation Item, Value, and Rate libraries replace Discrete Event, BPR, MFG, Generic, and Flow libraries
Scalable blocks, connectors, and tables
Unified interface for data source management using Read/Write blocks
More extensive statistical reports, plus mouse over connectors to view input or output values during run
Unlimited number of inputs/outputs for equation blocks
Calendar dates and times
String and database attributes
Enhanced data table interface for input/output (column tags)
Use of LP technology to provide global oversite for calculations in discrete rate modeling
#IFDEF and #IFNDEF statements for conditional compilation
Watch points on arrays; debugger jump
ExtendSim 8 -- released July 12, 2010
Scenario Manager
One of the more notable features added to ExtendSim 8 was the Scenario Manager. It gives the MOST COMPLETE understanding of how a model reacts to different factors. Explore projected outcomes as the Scenario Manager varies model inputs. Results change as the input changes; thus, run multiple experiments with the same model.
Essentially, the ExtendSim Scenario Manager keeps track of multiple what-if models, all based on the same model. It does this by assigning a named scenario to each combination of variables you choose to examine. For example, create best-, worst-, and typical-case assumptions for input values. Then recall each of these scenarios to see how the model behaves under different conditions. For comparative analysis, recall scenarios in combination, such as best-case sales and worst-case costs.
Advanced Resource Management
The addition of Advanced Resource Management (ARM) in ExtendSim provided an integrated system for organizing resources, distinguishing between them, and allocating them throughout a model. ARM provides a convenient and straightforward way to define complex resource requirements for items and a flexible set of rules for how resources get allocated to them. Plus, it provides automated methods for quickly changing resource information and generating statistical reports.
The ExtendSim ARM system's organization and allocation architecture is fueled by an ExtendSim database that represents, manages, and tracks the states and properties of resources, pools, groups, and allocation and release rules. Six blocks on the ExtendSim roster form the ExtendSim Advanced Resource Management team. At the heart of the ARM is the Resource Manager providing a convenient dialog-based interface.
Equation capabilities were enhanced in ExtendSim 8
The Equation Editor was added to most equation-based blocks as a separate, scrollable window to view, enter, and edit equations.
Equation-based blocks got their own debugging tools so you could now set breakpoints and conditions for equations, step through lines of code, and examine values of variables.
When a set of commands (definitions, assignments, or functions) have multiple uses, the added ability for equation-based block to call include files simplified model maintenance. These include files allow functions and message handlers to be overwritten and compilation to be conditional.
Sophisticated tools to search database tables for the best record appeared in ExtendSim 8 with the introduction of the Query Equation and Query Equation(I) blocks. These blocks have proven to be indispensable when a database holds information that is required for making decisions in a model.
Other new blocks introduced in ExtendSim 8
Block Info
Reports information about the block connected to its input connector.
DBStatistics
Calculates a set of basic statistics for all of the records in a database field.
Event Monitor
Displays the event calendar in discrete event models, revealing the event times for all event posting blocks.
Link Alert
Registers a section of a database so that the block receives a message when data in the linked database changes.
Model Interface
Creates an interface for controlling a model.
Memory Usage
Calculates the amount of memory required for each block, global array, or database table in the model. It is helpful in locating where memory is being used in large models.
MYOB DB Dialogs
Shows how to develop ExtendSim database popup menus.
Slider
Provides a flexible slider for models. It can be cloned to the worksheet or Notebook, be linked to a database, and more.
Time-saving Shift-Click was added in 8 to open a dialog in which you may choose which block or feature should get a given variable. Shift-Click an appropriate dialog item to add variables to the Find, Optimizer, Scenario Manager, and Statistics blocks as well as for Sensitivity Analysis and in custom block development.
Plus many user-requested functions, system variables, and message handlers.
ExtendSim 9.0 -- released July 17, 2013
Statistics (DB) Report | ![]() ![]() ![]() ![]() |
|||||||||||||||
![]() Of course, ExtendSim’s existing text-based reports have been maintained, but the new Statistics (DB) report provides better organization, presentation, and accessibility of model results. This sample report shows resource usage in a healthcare model. |
||||||||||||||||
![]() |
||||||||||||||||
ADO Database Support (Windows only) | ![]() ![]() ![]() ![]() |
|||||||||||||||
![]() ADO is faster and easier to use than ODBC and it does not require defining a data source name (DSN) before accessing data. It automatically configures the ExtendSim database when importing and the external database when exporting. Plus mirrors fields and records between the source and its destination. For example, here is the dialog of the Data Import/Export block configured for ADO Import from a SQLServer database into an ExtendSim database. The ADO interface is designed so that the modeler can access an ADO database by adding a Data Import/Export block to the model and selecting the internal and external data sources. |
||||||||||||||||
![]() |
||||||||||||||||
Flow Attributes | ![]() ![]() |
|||||||||||||||
![]() Flow attribute usage includes:
|
||||||||||||||||
![]() |
||||||||||||||||
Excel Add-In | ![]() ![]() |
|||||||||||||||
![]() ExtendSim 9 contains an entirely new version of the Add-In that supports most of the construction and editing features available in ExtendSim. This means that you can completely specify a new ExtendSim database in Excel, including parent/child relationships, cell randomization, named distributions, and more. Afterwards, export the database for use in ExtendSim models. In addition, the new Add-In leverages the latest Excel features such as ribbon interface, XML-based file format, and 1 million rows/16,000 columns. Plus, database consistency checking is now faster and has expanded capabilities. |
||||||||||||||||
![]() |
||||||||||||||||
Item Logging | ![]() ![]() ![]() |
|||||||||||||||
Track items and their states as they move through a simulation. In addition to the existing ExtendSim trace features, the Item Log Manager (ILM) block supports customized data collection and report configuration from within ExtendSim by doing two things:
![]() This screenshot is an example log of aircraft operations, showing the individual plane ID’s and their corresponding entry and exit times through various points in the model. |
||||||||||||||||
![]() |
||||||||||||||||
Templates Library | ![]() ![]() ![]() |
|||||||||||||||
![]() ExtendSim’s Templates library blocks are similar to standard blocks in that they contain an icon, help, blocks, and animation that can be used directly by the modeler. However, they contain the combined functionality of many blocks. As with any ExtendSim block, simply drag a block from the Templates library into the model and change the parameters to reflect a specific modeling situation. Template library blocks include:
|
||||||||||||||||
![]() |
||||||||||||||||
Smart Connections | ![]() ![]() ![]() |
|||||||||||||||
Intelligent connection line control better automates the modeling process when moving blocks around. Imagine That has developed a series of features collectively called “smart connections” that allow the modeler to quickly and easily modify models by moving blocks into strategic positions.
|
||||||||||||||||
![]() |
||||||||||||||||
Other New Blocks![]() |
||||||||||||||||
Get(R) and Set(R) | ![]() ![]() |
|||||||||||||||
Both the Get(R) and Set(R) blocks support the Rate library's new flow attributes feature.![]() The Set(R) block is for setting value or string flow attributes. ![]() |
||||||||||||||||
![]() |
||||||||||||||||
Meter | ![]() ![]() ![]() ![]() |
|||||||||||||||
![]() |
||||||||||||||||
![]() |
||||||||||||||||
Other New Features Added in ExtendSim 9![]() |
||||||||||||||||
Equation-based blocks | ![]() ![]() ![]() ![]() |
|||||||||||||||
![]() |
||||||||||||||||
Data import | ![]() ![]() ![]() ![]() |
|||||||||||||||
New options for importing a named range of data from Excel.![]() |
||||||||||||||||
Interval statistics | ![]() ![]() ![]() ![]() |
|||||||||||||||
Record the mean, variance, confidence interval, and standard deviation at specific intervals during the simulation using interval statistics.![]() |
||||||||||||||||
Quantile statistics | ![]() ![]() ![]() ![]() |
|||||||||||||||
Can now be calculated within ExtendSim.![]() |
||||||||||||||||
Multi-component failure modeling | ![]() ![]() ![]() |
|||||||||||||||
New options are available for multi-component failure modeling.![]() |
||||||||||||||||
Functions & message handlers | ![]() ![]() ![]() ![]() |
|||||||||||||||
There are a number of new functions and message handlers. |
UI and Block Enhancements
String Attributes
If a change is made to the value of a string attribute, all the blocks that were referencing the old attribute value will now reference the new value.
If the index for the value of a string attribute changes (the order of the values for the string attribute change), all the blocks that were referencing that value will be alerted to the change in location.
Changes to string attribute values defined in the database are now error checked at the beginning of the run. This provides more freedom to manipulate databases without having to worry about losing critical pieces of information.
A new string attribute interface in the Executive block allows modelers to make global changes to string values that are referenced in other blocks in the model.
Speed Improvements
Models with blocks that don’t have Simulate messages execute faster in ExtendSim 9.
Linked list optimization speeds up the performance of Item library queues and the blocks in the Rate library.
Other Application Enhancements
ExtendSim Database
Automatically resizes itself based on the number of rows in the imported data.
Variable names
The upper limit of the variable name length for static and local variables has been increased from 63 to 127 characters.
Data tables
Double-clicking the upper left cell of a data table linked to a database goes directly to the database view of that table.
Block Profile
Reports results even if the simulation ends prematurely.
Shift capabilities
ExtendSim’s shift capabilities are enhanced and interfaced with additional blocks.
All ExtendSim blocks
Have been enhanced so that fewer blocks are required to build many models.
E3D
Mount nodes on custom 3D objects have been increased from 8 to 20.
Enhancements to Equation-Based Blocks
Additional input and output variables in most blocks.
New checkboxes in the Options tab control the execution of the equation.
Equation blocks now support static variables that have been declared in include files.
Query Equation (AT and Suite only) has new input variables.
Value Library Enhancements
Data Import Export
• Incorporates the new ADO capability.
• New option to import named range from Excel spreadsheet.
• Database field names can be exported to Excel.
• When importing from Excel, the number of rows in the database automatically adjust.
Mean & Variance
• Collects interval statistics for a specified time period. At the end of the period it reports the calculated statistics, clears the statistics, and begins a new reporting period.
• Has quantiles so you can see what proportion of the observations fell within an interval.
Item Library Enhancements
Residence blocks - Activity, Queue, Queue Equation, and Workstation
Added variable item input connectors to each block to allow the merging of multiple item streams. This functionality works the same as the Select Item In block’s Merge option.
Activity
• Two new value inputs:
• PC (Processing Cost) allows users to target different processing costs on different items.
• CPI (Cost Per Item) attaches a unique CPI to each item.
• One new value output:
• TE (Total Items Exited)
• If preempting with items, attributes on the preempting item can be transferred to the preempted item.
Executive
Added variable connectors for events.
Gate
Now allows the Shift block to control its behavior.
History
• Provides more control over data collection in ExtendSim 9, plus has new options for handling data storage in multi-run scenarios.
• A checkbox on the Options tab causes data to be stored in a database table at the end of each run.
Query Equation (I) AT and Suite only
Added targeted querying and two new input variables.
Queue Equation
Gained new input and output variables.
Queue Matching
New “recipe” building and batching capabilities added.
Read (I) and Write (I)
These blocks have new options for querying where to read and write data.
Scenario Manager AT and Suite only
Supports the optimal design of experiments (DOE) method for Minitab 16, a statistical software product from Minitab Inc.
Shift
Allows modelers to display a symbol on block icons if a specific Shift block is used.
Shutdown
• Separate and independent polices can be specified for both Shift and connector-based scheduled shutdowns.
• Off-shift downs (OFD) connector reports the number of shutdowns due to off shifting.
• Accumulated off-shift downtime (OST) connector reports the amount of time the block has been down due to off shifting.
• The “multiple components” option has new capabilities:
• The matching feature allows one master failure table to represent multiple failure points in a model.
• Summary failure data for each component.
• Component state and dependency/independency options.
• Block state versus component state reports.
Transport
Now has an option to prevent items from passing each other when traveling through the block.
Rate Library Enhancements
Flow Attributes
• Characteristics of the flow such as type, product, color, and so forth can be associated with each specified volume of flow.
• Two types of flow attributes are supported: layer and string layer.
Contents tab
Each Rate block that holds/provides flow has a Contents tab showing the attribute values of its flow by volume.
Interchange
Now includes a matrix for converting item attributes into flow attributes and vice versa.
Tank
Provides multiple options for defining how the incoming and outgoing flow should be layered.
In addition to the functions listed below, include files are useful when creating custom blocks. To see a block’s include file, open the block’s structure. Then give the menu command Develop > Open Include Files.![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
New ModL Functions | ![]() ![]() ![]() ![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
New Message Handlers and Global Variables | ![]() ![]() ![]() ![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ADO (ActiveX Data Object) Functions | ![]() ![]() ![]() ![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
These functions are used to communicate between ExtendSim and external databases. They are not part of the ExtendSim application but instead are located in the “ADO_DBFunctions v9.h” include file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
ExtendSim 9.1 -- released February 10, 2014
Smart Blocks
Right-click on the output connector of an Item or Rate library block and this feature will pop up a list of suggested blocks to connect to.
Uses ExtendSim scripting functionality and an adaptive learning algorithm to seamlessly generate and continuously update the list of suggested blocks based on how you model.
New blocks
History(R) Rate library
Records a history of rate values over time.
Model Compare Utilities library
Compares model results before and after running a model.
Enhanced blocks
Real Timer Utilities library
Analyze model performance using the block profiling capability added to the Real Timer block.
Data Import Export Value library
Wild Card feature for table and worksheet names in the Data Import Export block.
Automated test environment
Simplifies the process of comparing simulation results between two ExtendSim releases – it identifies any differences between models that were saved in a previous release and those same models run in the new release.
Compares simulation results before and after making changes to a model.
If there is no Results tab, the entire dialog is used.
Improved Smart Connections
Bump to Connect, automatically connects a new block to an existing block and spaces them apart.
Auto Insert inserts a new block between two existing blocks and automatically increases the spacing between them.
Enable/disable Smart Connections using an option in the Edit > Options > Model tab.
Improved Auto Route Connection Lines
Intelligent connection line control anticipates how you want the connections between Item and Rate connectors to behave when you move blocks.
Enable/disable Auto Route Connection Lines using an option in the Edit > Options > Model tab.
New/changed options in the Edit > Options > Model tab
Auto Route Connection Lines
Smart Connections (Bump to Connect and Auto Insert)
Both options only apply to Item and Flow connectors (Item and Rate library blocks)
Improved Advanced Resource Management (ARM)
If an allocated resource goes off shift, and the item it's allocated to is in the Activity, you now have the option to either shut the item down or renege it.
New and changed functions and message handlers
Message handler
• OldFileUpdate -- Sent if the file version is older than the application version
Functions
• ProfileBlockGet -- Returns the block profile results for a specified block
• GetRunParameter -- Similar to GetRunParameterLong except returns a real rather than an integer
• ConArrayGetNthCon2 -- Same as ConArrayGetNthCon except it has an additional argument to specify the connector on a different block.
• GetBlockTypePosition -- Two new values for Type: 5 (embedded object) and 6 (blockControl)
File format change
Due to architectural changes in ExtendSim 9.1, files created and saved in 9.1 are not backwards compatible so are not readable by ExtendSim 9.0.
ExtendSim 9.2 -- released Feb 13, 2015; updated Nov 16, 2017
Improved performance and precision
Data Specs Value library
Modified so it tightly restricts conditions under which an entire database or table can be registered, decreasing runtimes.
Executive Item library
A new method for reusing deleted item indexes enhances performance for discrete event models.
Read(I), Resource item, Set, Write(I) Item library
Improved runtimes by increasing performance.
Interchange Rate library
Enhanced precision.
Value library
Data Specs, Equation, Read, and Write
Added right-click ability to automatically add a named connection.
Equation
If equation debugging has been turned on, a red box shows up on the inside of an equation's icon.
Mean & Variance
Added first value as the initial value for time weighted statistics.
Write
Significantly modified and improved exporting to text files.
Item library
History
Checkbox saves memory by disabling the recording of information during a simulation run.
Queue Matching
Transfers ARM resources from inbound items to non-preserved batched items.
Transport
The “Do Not Pass” option is now available when the delay is set, not just when speed or speed and distance is selected.
Rate library
Diverge & Merge
Two new options to maintain outflow attribute values - when inflow effective rate is 0 and when all attribute values are Blank.
History(R)
Checkbox saves memory by disabling the recording of information during a simulation run.
Valve
Added a shutdown option, utilization statistics, and pie chart animation option. Plus information when the quantity and goal quantity had last been calculated and option to ignore a new goal under specific conditions.
Advanced Resource Management (ARM) Enhancements
Non-Preserved Batching
Advanced resources attached to items entering a batching block (Batch and Queue Matching) are now transferred to the batched item. Note: This only applies to non-preserved batching.
Non-Preserved Unbatching
Advanced resources attached to an item entering the Unbatch or Query Equation(I) block are now shared equally across all of the unbatched or “spawned” items. These shared resources have a “shared count”. As the cloned items holding shared resources go through release blocks, the resources’ shared counts are decremented.
Non-Redundant Resource Allocation
If ARM resources are already attached to an item as it enters an ARM queue in the Queue and Queue Equation blocks, those attached resources are now used to help satisfy the new allocation requirement wherever possible.
Exclude Resource Release Options
The Resource Release block now has the option to exclude certain resources from release based on that resources’ ability to satisfy one or more specified requirements. This is a way to retain resources on an item that will be used to satisfy some future downstream allocation requirement.
New item property "ARM Resource Order ID" in Get, History, and Item Log Manager blocks (Item library).
New input variable "AR Order ID" added to equation-based blocks reads an item's advanced resource order ID.
New system property "_AR Order ID". The value of this property is the record index in the Resource Orders table.
Plotter library
Plotter, Discrete Event
Added a checkbox that saves memory by disabling the recording of information during a run.
Utilities library
Model Compare
Added “Ignore blank values in original model” checkbox.
Pause Sim
Resume option can also initiate a model run. New button runs the model if it is not running, pauses if it is running, and resumes if paused.
Real Timer
Snapshot option creates a profile each time the block receives a message.
New function & Message handler
DLLMakeProcInstanceLibrary
Includes the library name so the user can specify in which library to look for the routine.
BlockSelect message handler.
Quality and Stability Improvements
In addition to adding new features in the 9.2 release, we improved its quality and stability. Just a few of the fixes include:
Calling RunSimulation on a model while it is already running no longer reports an error.
In the BlockMove message handler, changing selected blocks could ocassionally cause the rest of the moved blocks to not receive the message. This has been corrected in 9.2.
OLEGetNames and OLDGetDispatchNames no longer crash if one of the names is longer than 31 characters.
Extend Block Profile file is created in Documents directory, not Application directory, for permissions issues.
The BLOCKUNDELETE message is now sent after all undeleting has been completed, rather than being sent to each block as the undeleting process proceeds.
When manually changing a random cell, the random seed will now correctly take on the new value.
When using more than one connection message type simultaneously (CONNECTORTOOLTIP CONNECTIONMAKE, CONNECTIONBREAK, and CONNECTIONCLICK), the resulting values of ConnectorToolTipWhich() are now correct.
Update to 9.2 on November 16, 2017
Released a revised DLL for Windows 10 Fall Creators update, release 1709.
ExtendSim 9.3 -- released June 25, 2019
ExtendSim 9.3.1 was released on October 28, 2019 to correct some minor issues in 9.3.
New and improved application features
New functions • DLLUnloadLibrary and EquationCompileDynamicVariablesSilent
New message handler • PasteBlock3
New system globals • SysGlobalInt60-79, SysDBNGlobalInt0-19, SysARMGlobalInt0-19.
Data tables linked to database tables use some of the database formatting for cell display.
Changes to blocks in multiple libraries
Separated constants DILinkinfo and DILinkUpdateinfo.
Added static variable change detection.
Added more controls, reports, and error messages.
Updated the relative positions of constants.h and attribs v9.h.
New includes: Static Variable Mgt – Functions, Static Variable Mgt – Prototypes, Static Variable Mgt – Variables, Dialog Utilities
Value library
Data Import/Export
Added connectivity to Oracle database. Plus, over 70 fixes and enhancements to this block as it was extensively updated; see the list of comments at the top of the block's script tab for details.
Data Source Create
The resize button provides the ability to add columns now as well as rows.
Lookup Table
Almost 30 fixes and enhancements to this block as it was significantly updated; see the list of comments at the top of the block's script tab for details.
Math
Added the option to ignore BLANK if selected the operation in OR.
Random Number
Several changes were made to the Random Number block to make empirical distribution work better. Plus, changed the block from a static array of 1000 rows to a dynamic array.
Read
Added register content and structure to "on PasteBlock" because a pasted block was not getting registered.
Scenario Manager
Added logic to enable having multiple Scenario Manager blocks in the same model. Plus the ability to distinguish the "active" Scenario Manager from an inactive one based on which block's "Run Scenarios" button was clicked.
Created a new RECORD option where whole records can be copied from a source to a target table.
Added code to LINKCONTENT message handler and supporting functions to ensure that changes to database factor source tables during modeling initialization are transferred to target tables.
Added code to prompt for response names when adding clones or dragged dialog variables.
Adjusted the size of the target response table to match the number of scenarios being run.
Write
Added new options for specifying the record index: last record and last record+1. Plus, added the ability to re-dimension text files.
Item library
Activity
Added connector: Values_Out_Num_In_Proc
Added checkbox: PE_AR_When_Reassign
Improved block performance by making 3 calls to AnimationHide() conditional.
Batch
Added feature in the Options tab that when Preserved uniqueness is checked, the list of batched items in an attribute is stored in an index of global arrays.
Batch block now delays the clearing of the item's list of batched items until the item has departed.
Create
Supports “on AttribInfo” for RndDb_AttributID_pop.
Checks if the distribution parameters change druing the run.
Queue
Added new static bookkeeping variable for internal consistency checking static variables.
Queue Equation
Changed the valuesIn connector to a connector array.
Added a "C" Capacity connector.
Queue Matching
Set default value of con_BinReqOptions_Pop to Con_Bin_Req_Options_use_Curr_Val.
Updates lengthOut during run when a Shift is requested.
Resource Manager
Added logic so the user can create parent-child relation for custom properties.
Added logic to release reassigned resources when the item they were assigned to is reneged from the Queue.
New arguments added for the new fractional resources feature.
New message handler to auto-generate resources, pools, groups, and properties.
Added new dynamic array to support a new function.
Added DB attached attribute type for specifying filtering condition attributes.
Created new function RMfcn_getAvailableResources to get a list of available resources for a specified resource requirement.
Updated RMmsg_OnBlockReceive7 to create a list of available resources and store that in a database table, plus the ability to respond to a request to dynamically change resource properties.
Resource Pool
Added a new transaction logging feature and checkbox in Results tab.
Added call to AR_setDBindexes.
Accounts for off-shift resources when determining if resource number needs to change.
Select Item Out
Performance improvement: update animation icon only if the block shows attribute on icon.
Added a "C" Capacity connector.
Shutdown
Added message sending whether going down or up.
Transport
Stopped block-to-block animation if animation is on and Add Connection Line Animation is also on.
Unbatch
Added new feature for Advanced Resource Management items to create new resource orders and transfer the list of attached resources from inbound to outbound items.
Behavior change: If Use Preserved Items to Determine Unbatch Quantities is checked and the item has no preserved info, the global array is now also -1 as well as 0. Also changed that if a cost or rate attribute has been defined as Distribute, the values have to be divided.
Workstation
Made some animation calls more conditional to speed up this block’s performance.
Rate library
Multiple Rate Blocks
FlowAttCurrentContent_dtbl is now linkable to a database.
If a recursive condition is detected in a Rate block, the simulation run will stop.
Added a re-entrance flag to avoid the code getting into a loop when it gets a linkContent message.
Updated the sections when OpenModel and changing TC connections occur at the same time.
Updated some dialogs so a cloned Content table’s Link button would be hidden.
Get(R)
When comparing two reals, it now also checks for Blank.
Set(R)
Added an option to easily erase all attributes when necessary.
Now the dialog table allows you to not define an attribute rather than return an error.
Throw & Catch Flow
Added a checkbox in the Throw block to cause its label to mirror the label of its enclosing hierarchical block.
Now checks for blank before transforming into integer; give value -1, checks if link to database field that is an integer.
Valve
Results tab shows when quantity and goal quantity were last calculated.
Added a Shutdown option in Options tab and a checkbox to Flow Control tab to deal with blank or negative values.
Results tab calculates additional results.
Utilities library
Buttons
Added a button so animation is turned on or off depending on animation status.
Find & Replace
When you click on the first column of the dialog table it opens the block’s dialog.
If the dialog item selected is a data table, allow to select a row and column then a value can be searched/changed.
Link Alert
Added support for link structure, new addressOut array connector, ConnectorSetup(), and tooltips.
Changed addressOut into a connector array.
Meter
Can now animate either horizontally or vertically.
Model Compare
Added the option to ignore the difference when an old value is blank and not new value because it is most often a new dialog item created in the newest version.
Popups
Added additional calls to SetPopups to fix issues when hBlock is updated.
Caused connector values to always be updated even if simulation is not running.
Queue Tools
Allow users to add/delete rows in the properties table in Options tab.
Record Message
Added NumberDifferences parameter to show differences from one run to another.
Add a limit to the number of logged differences and the ability to add rows to adata table only when necessary.
New Includes
Added code for ADO_SetConnectionID and ADO_OracleGetSchemaObjectType to ADO_DBFunctions v9.h and COM_DBFunctions v9.h.
Added Attrib_Info_Changes_Complete to Attribs v9.h and a check for _ItemIndex in Attribu_CheckReserved.
Added “which” argument values for DTColumnTagGet function call in Column Tags v9.h.
Added new Excel and other constants to Constants v9.h as well as new info indexes for top and left location for GetDialogItemInfo.
Added new functions to Database v9.h.
Multiple enhancements made to the Equation v9.h include.
Quality and Stability Improvements
In addition to adding new features in the 9.3 release, we improved its quality and stability. Just a few of the fixes include:
DBGetDataAsString returns a zero if it’s a child field and no parent is selected.
Bug fix in dateTime functions for unusual overflow condition.
Some of the matrix functions had row and column arguments reversed.
Volume keys on keyboard could insert null characters into scripts.
Windows could sometimes go above the toolbar..
OpenDialogBoxToTabName sometimes had a refresh issue.
GetBlockMemSize could crash if an invalid block number was passed in.
Datatable linked to a database table didn't deal well with percent formatted fields.
Poking a safeArray to ExtendSim via OLE/COM should work better than in 9.2.
Datatable dialog item message send to block when you tab to a cell.
Copying data from datatables had issues with empty cells in the middle of the data.
Could sometimes get an extra empty model when you created a new model.
Changes made to dialog parameters in DialogClose message handler weren't saved.
Model should require a Save after you make a connection.
ExtendSim 10 -- released October 12, 2018
User Interface
Whole new look and feel! Complete rewrite of the ExtendSim application using an industry standard IDE (Integrated Development Environment) and a cross-platform framework
Moveable docking tool palettes for Shapes, File and Edit menus, Text, and more
Tear-off menus – e.g. Default Connection Style, Tools
Tear-off Notebooks, model worksheets, etc.
Multiple Undo/Redo
Improved graphic objects – new color selector, free rotation (Alt click on resize box), transparency/translucency, properties
Improved Zoom in/out
Improved text: edit while scaled, rotate, select in groups to change style, vertical, transparent background, etc.
Tile and Cascade windows commands (Window menu)
Consistency of UI between worksheet, Notebooks, block structure, etc.
Improved search capabilities with regular expressions capability
Window size and position memory
Two Run Modes:
• Fastest Run Mode for running a single model one or more times
• Multi-threaded Run Mode for running multiple different models at the same time
Model Builders
Right-click to automatically add and connect blocks on model worksheet
Right-Click Connect to add blocks and connect them at the same time
Worksheet and Notebooks are tabs in model window so can be torn off
Multiple Notebooks per model; even hierarchical blocks have notebooks
Docking library windows; tear off to float
Libraries are database-based; no limits on size
Scrollable popup menus (combo box)
Automatic Executive block placement on new DE or DR models
Improved Data Import Export; import an entire database; import/export with Oracle database
Connection lines:
• 4 styles, including Smart and Free Form
• Right-click, Bump Connect, or point and click to connect blocks
• Control-click on free-form segment makes Bezier curves
Up to 20 “Recent Files”
64-bit allows bigger models and libraries; multi-threading
New Reports Manager - the primary interface in ExtendSim for creating reports from simulation runs for blocks, events, items, and resources. This block's dialog provides filtering conditions to specify which blocks, events, items, and resources to generate reports for; data is stored in an internal ExtendSim database for ease of access and export.
New Chart library with Bar Chart, Line Chart, DB Line Chart, Scatter Chart, etc., each with up to 20 inputs
New Reliability module combining process simlation with reliability block diagramming
Animation
Paths – right-click on a free-form segment to curve
Anti-aliasing for cleaner appearance of lines, blocks, and objects
Smoother simultaneous animation with multiple objects at a time
Programmers
New source code (text) editor similar to Notepad++ with custom colors, code folding, brace matching, auto indent, word/line wrap, zoom/reduce in script window, show end of line characters, show white space, and more. Control O opens Edit>Options>Script window to customize.
Improved dialog editor and structure windows
Code completion improvements – user customizable (add a text.ini file in Extensions folder), call tips
Graphic objects in dialogs
Progress bar column tag
Improved Search and Find capabilities
Other Updates
New License Manager for Floating, Shared, and Individual licenses
New product line-up: CP, DE, and Pro Model Developer Editions, plus Analysis and Player RunTime versions
30 day trial version available to new users
Integrated Maintenance & Support Plan with first year free
Improved Advanced Resource Management (ARM) capabilities
Improved ASP capabilities