Evolution of ExtendSim

Extend over the yearsExtendSim 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.0Extend 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.1Extend 1.1 -- released 1989

Extend 1.1Added 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.0Extend 2.0 -- released 1992

Extend 2.0Hierarchical 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.0Extend 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.1Extend 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.2Extend 3.2 -- released 1996

Extend 3.2Dynamic 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.0Extend 4.0 -- released 1998

Extend 4.0Activity 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.1Extend 4.1 -- released 1999

Extend 4.1Enhanced 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 5Extend 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 6Extend 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

Extend 7ExtendSim 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 8ExtendSim 8 -- released July 12, 2010

ExtendSim 8

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.

Suite AT

Advanced Resource Management

Advanced Resource ManagementThe 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.

Suite AT

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.

Suite AT OR CP

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.

Suite AT

Other new blocks introduced in ExtendSim 8

Block Info
Reports information about the block connected to its input connector.

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.

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.

Suite AT OR CP

Plus many user-requested functions, system variables, and message handlers.

ExtendSim 9.0ExtendSim 9.0 -- released July 17, 2013

Statistics (DB) Report Suite AT OR CP
Statistics (DB) ReportStatistics (DB) report contains final values for output parameters. Statistical data from each simulation run is stored in an ExtendSim database, organized by block type so that there is one table per type of block. Blocks included in the report can be all blocks in the model or a user-defined subset of the blocks. Report tables can be exported to external databases or Excel when the simulation is complete.

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) Suite AT OR CP
Data Import/Export for ADO DatabaseCommunicate with the most commonly used external databases. ActiveX Data Objects (ADO) provides built-in import and export support for Microsoft Access, SQL Server, and MySQL. ADO sends an entire table of information at one time, providing high-speed data interchange.

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 Suite AT
Flow AttributesEnhancing ExtendSim’s unique discrete-rate technology, flow attributes track the properties of the type of product that is modeled as a continuous "flow" in a discrete event environment. Examples of flow include bulk material such as grain or ore, liquids and gases, and product in a high-speed production line. A flow attribute is a quality or characteristic of flow that stays with it as it moves through the model, such as type, product, color, and so forth. Flow attributes provide information about the flow and allow you to organize quantities or volumes of flow into layers. The entire set of attribute values assigned to a particular layer is what distinguishes it from other layers. In other words, all the units of flow in a layer possess the same set of flow attribute values.

Flow attribute usage includes:
The flow held in a Tank can be organized into individual, distinct layers. This allows you to control where incoming flow is deposited and which type of outgoing flow next exits.
Flow can be routed through the Merge and Diverge blocks based on flow attribute values.
Attributes are assigned to the flow by the model builder. They become linked to sections of flow that pass through the blocks, according to settings in the blocks’ dialogs.
The flow held in a Tank can be organized into individual, distinct layers. This allows you to control where incoming flow is deposited and which type of outgoing flow next exits.
Excel Add-In Suite AT
Excel Add-InThe ExtendSim DB Add-In for Excel works with database text files to transfer data between an ExtendSim database and Microsoft Excel. Excel has become the ubiquitous repository for simulation data and is often used for ad-hoc analysis. However, because of performance and scalability issues, Excel is a less-than-ideal database. To bridge the gap between Excel as a data repository and the ExtendSim database, we created an Excel Add-In that allowed exported ExtendSim database text files to be imported into Excel for editing, then exported back to ExtendSim.

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 Suite AT OR
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:

During the simulation run, the ILM block directs other blocks in the model to collect data on items as they pass through. These “remote” data collecting blocks include History, Activity, Queue, Queue Equation, and Resource Item. Each of these blocks can be remotely instructed to collect specific item property information for the ILM through its “Data Collection” tab.
Once the remote blocks have collected the data, the ILM packages it into a report. You can control which types of data are included in the report and the order in which the data appears. This is done on the ILM block's “Configure Log” tab.

Item LoggingOnce the run is complete, any number of reports can be generated from the data that has been collected in the remote blocks. These reports can be generated after each run either automatically or manually. Item loggingAny number of ILM blocks can be used in any one model with each ILM block responsible for generating its own report. The ILM also supports generating reports across multiple runs.

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 Suite AT OR
Templates LibrarySpeed up model building by using pre-built templates for common modeling situations. These templates are actually submodels within hierarchical blocks - constructs created in ExtendSim by combining just a few blocks together.

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:

. Activity (cycle-based shutdown)
. Activity (load / unload)
. Create (arrivals vary by time)
. Queue (batch all items)
. Queue (dump contents)
. Queue (hold until quantity reached)
. Queue (random renege)
Smart Connections Suite AT OR
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.

Bump to Connect
  When a block from the Item or Rate library is placed in the model and its input connector is placed on an output connector of the same type, ExtendSim will automatically connect the blocks, spaces them evenly, and aligns the connectors.
Auto Insert
  Drop a block onto an existing connection line so either the block's input or the output connector is on that connection line. Smart connections will increase the spacing between the existing blocks and insert the new block inline between two existing blocks.
Connection Routing
  If a block is moved, ExtendSim will reroute the connection lines so they will not cross over the icon of the block.
Other New Blocks
Get(R) and Set(R) Suite AT
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.

Get(R)The Get(R) block displays either multiple flow attributes from one location or one flow attribute from multiple locations.
Meter Suite AT OR CP
MeterProvides more flexibility and features than the Meter control (Model>Controls>Meter). For example, the color and pattern of the indicator change when the current value has reached specified high and low values. Use the Meter block as a progress bar or to animate a hierarchical block.
Other New Features Added in ExtendSim 9
Equation-based blocks Suite AT OR CP
. New input and output variables in equation-based blocks.
. Options added in equation-based blocks that provide more control as to when the equation executes.
Data import Suite AT OR CP
New options for importing a named range of data from Excel.
Interval statistics Suite AT OR CP
Record the mean, variance, confidence interval, and standard deviation at specific intervals during the simulation using interval statistics.
Quantile statistics Suite AT OR CP
Can now be calculated within ExtendSim.
Multi-component failure modeling Suite AT OR
New options are available for multi-component failure modeling.
Functions & message handlers Suite AT OR CP
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.

Suite AT OR

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.

Suite AT OR

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.


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.

Suite AT OR CP

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.

Suite AT OR CP

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.


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.


Added variable connectors for events.


Now allows the Shift block to control its behavior.


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.


Allows modelers to display a symbol on block icons if a specific Shift block is used.


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.


Now has an option to prevent items from passing each other when traveling through the block.

Suite AT OR

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.


Now includes a matrix for converting item attributes into flow attributes and vice versa.


Provides multiple options for defining how the incoming and outgoing flow should be layered.

Suite AT

New Functions, Message Handlers, & Global Variables 

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 Suite AT OR CP
New Message Handlers and Global Variables Suite AT OR CP
ADO (ActiveX Data Object) Functions Suite AT OR CP
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.1ExtendSim 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.

Suite AT OR

New blocks

-History(R) Rate library

Records a history of rate values over time.

Suite AT

-Model Compare Utilities library

Compares model results before and after running a model.

Suite AT OR

Enhanced blocks

-Real Timer Utilities library

Analyze model performance using the block profiling capability added to the Real Timer block.

Suite AT OR

-Data Import Export Value library

Wild Card feature for table and worksheet names in the Data Import Export block.

Suite AT OR CP

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.

Suite AT OR CP

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.

Suite AT OR

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.

Suite AT OR

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)

Suite AT OR

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.

Suite AT OR

New and changed functions and message handlers

-Message handler

OldFileUpdate -- Sent if the file version is older than the application version


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)

Suite AT OR CP

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.

Suite AT OR CP

ExtendSim 9.2ExtendSim 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.

Suite AT OR CP

-Executive Item library

A new method for reusing deleted item indexes enhances performance for discrete event models.

Suite AT OR

-Read(I), Resource item, Set, Write(I) Item library

Improved runtimes by increasing performance.

Suite AT OR

-Interchange Rate library

Enhanced precision.

Suite AT

Value library

-Data Specs, Equation, Read, and Write

Added right-click ability to automatically add a named connection.


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.


Significantly modified and improved exporting to text files.

Suite AT OR CP

Item library


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.


The “Do Not Pass” option is now available when the delay is set, not just when speed or speed and distance is selected.

Suite AT OR

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.


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.

Suite AT

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.

Suite AT

Plotter library

-Plotter, Discrete Event

Added a checkbox that saves memory by disabling the recording of information during a run.

Suite AT OR CP

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.

Suite AT OR CP

New function & Message handler


Includes the library name so the user can specify in which library to look for the routine.

-BlockSelect message handler.

Suite AT OR CP

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.3ExtendSim 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.

Suite AT  CP

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

Suite AT  CP

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.


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.


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.


Added new options for specifying the record index: last record and last record+1. Plus, added the ability to re-dimension text files.

Suite AT  CP

Item library


Added connector: Values_Out_Num_In_Proc
Added checkbox: PE_AR_When_Reassign

Improved block performance by making 3 calls to AnimationHide() conditional.


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.


Supports “on AttribInfo” for RndDb_AttributID_pop.

Checks if the distribution parameters change druing the run.


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.


Added message sending whether going down or up.


Stopped block-to-block animation if animation is on and Add Connection Line Animation is also on.


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.


Made some animation calls more conditional to speed up this block’s performance.

Suite AT 

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.


When comparing two reals, it now also checks for Blank.


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.


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.

Suite AT

Utilities library


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.


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.


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.

Suite AT  CP

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.

Suite AT  CP

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 10ExtendSim 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


-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


-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