Release Notes (README) for Version 5.6a
These are the release notes for Version 5.6a of 
Vensim.  
NOTE  All documentation for Vensim 5 is available 
online and can also be accessed from our website. On 
the Macintosh the documentation is installed 
separately and can be opened in a web browser.
Major Changes
SyntheSim 
Behavior Changes 
Function and Language Changes 
DLL Venapp and Command Changes 
5.6a Changes
Version 5.6a contains a number of bug fixes.
Bug Fixes
File permission problems could cause errors during 
simulation or when saving a model.
Models would print with variable names squished 
together.
Translation of models to UTF8 format could cause 
anomalous shadow variables to appear.
In the Model Reader the up and down arrow keys were 
not changing hide levels.
In the Model Reader Venapp’s with SyntheSim active 
were not updating.
Vensim was not running under Windows 98 or ME. Note 
that Vensim will not run under Windows 95.
Importing data from Excel files would sometimes cause 
unexpected behavior.
Graphs with legends suppressed did not have sufficient 
bottom margins or display units when only 1 scale was 
used.
Venapp Only: READUNCHG and READCIN did not force a new 
simulation in SyntheSim mode. Loading a model with 
SyntheSim active would cause an error. Repeatedly 
simulating without leaving a screen could cause 
buttons to not respond.
5.6  Changes
Unicode
Version 5.6 of Vensim now uses Unicode for all 
character encoding with files stored in UTF-8 format. 
This will only have an impact for models that use 
characters not in the standard Latin (English) 
alphabet. For working with new models it will allow 
you to alternative character sets, including far 
eastern character sets, much more easily. If you have 
existing models that use alternative character sets 
these will need to be converted. For models stored in 
.mdl format you will be asked when you open them if 
you want to convert the character set. If you answer 
yes you will be allowed to select the appropriate 
character set to convert from. More details on 
character sets are contained in the section on 
Reforming and Cleaning in Chapter 3 of the reference 
manual.
Venapp and DLL Changes (DSS Only)
The Vensim Model Reader will now open published 
Venapps and can also be used to open applications 
developed using the Vensim DLL. Vensim Application 
Runtime is no longer required to make use of these. 
Also, because the Vensim Model Reader is free software 
the Vensim Minimal DLL has been discontinued. The 
process for providing people with applications using 
the Vensim DLL has been changed substantially, and 
should make it much easier for the people you send the 
application to. Chapter 13 of the Vensim DSS reference 
supplement discusses the new processes in detail and 
should be referred to.
Show/Hide (Vensim PLE Plus Only)
Show and Hide are now available in Vensim PLE Plus.
Small Changes
COMLINE entries in custom tables with Tabs in them now 
scroll.
Using the up and down arrows to show/hide elements no 
longer brings up a dialog when all elements are 
shown/hidden. Instead a message appears on the bottom 
of the window for a second.
Bug Fixes
Many index entries in the help files were not opening 
the correct help entries. 
DLL Only: The Workbench variable returned by 
vensim_get_info was not being giving enclosing quote 
marks when these were required.
(Pro/DSS only) Unsubscripted constant equations with a 
constant list terminated in a semi colon were not 
being detected as errors.
The Stats tool would use the incorrect subset of time 
when some Time Bases were chosen.
Datasets (.vdf files) that were the result of runs 
with floating point errors at initial time would not 
move properly between Macintosh/Intel computers.
Exporting Table tool output with a small number of 
columns would sometimes result in incorrectly 
formatted results with values from different rows 
appearing in a single row.
Using Reality Check, during the grace period 
Constraints using > or < (instead of <= or >=) would 
be reported as violated.
Excessively small Slider increments in SyntheSim (less 
then 1e-6of the range) would result in incorrect 
values for the constant as the slider was dragged.
Initial cause arrows could be arbitrarily reshaped 
when switching a model between hiding and showing 
these.
Sketches with embedded bitmaps/metafiles would cause 
problems with pasting and Undo.
When optimizing the endpoint.tab file might show 
different values from the reported results (also the 
.out file).
Find/Find Again was not working on models using 
Templates when the variable being searched for was on 
another view.
DSS Only GAME>READGVARS|tilltime was stopping early 
when the optional tilltime was used.
When importing .xls files containing negative numbers 
these would sometimes be read incorrectly as large 
positive numbers.
Models in directories where the total length of the 
path was sufficiently long could cause instability 
especially with GET XLS… function calls.
Publishing a package that included a file locked by 
another application would package a 0 length file.
The work in progress Window could stay open after 
canceling a simulation which opened an Excel file.
Excel was not being closed on exit when that option 
was set.
In payoff definitions, optimization control and 
sensitivity control files adding subscripts to a model 
variable that was not subscripted the added subscripts 
would be ignored with no error message provided.
5.5d Changes
DLL Only: The minimal DLL now create a more complete 
error history in vensim.err. The multi context DLL now 
creates multiple error files named vensim_ctxt0001.err 
and so on for the different contexts instead of 
sending all messages to a single error file (context 0 
still uses vensim.err).
In the variable selection dialog a new type "Orphan" 
has been added. Select this to get a list of variables 
that do not appear on any Sketch. This is useful for 
building up diagrams when some model variables have 
not been included in a diagram.
DSS Only added in the Venapp command 
SIMULATE>RUNCOMMENT.
You can now select String Variables into the Workbench 
and use the Table tool to see their values in 
different simulations. You can also change String 
variables from the Constant changes dialog or by 
clicking on them in simulation setup mode.
Not PLE or PLUS. The keyword  :AS-RUN has been added 
for Custom Bar Graphs that allow you to more 
completely specify line groupings. See Chapter 15 of 
the Reference Manual for more details.
Custom Graphs have had a :LINE-STYLE  keyword added. 
The choices are DOT, DASH,  DASHDOT and DASHDOTDOT. 
You can also just fill in line width as -1, -2, -3 or 
-4 to get the same effect.
If you export data with subscript in their own columns 
in Data List Format the subscripts are ordered by 
family, not using the order they appear in the model. 
The first row of the file lists the families that are 
used, this list is alphabetical. This format should 
make it easier to import values into a database. 
Exporting to other formats is not changed except that 
the number of columns exported to a tab delimited 
format will no longer exceed the number required to 
list subscripts when a save list is used.
Changing views to one that has a Workbench tool 
showing will no longer change the Workbench variable.
Drag selecting in sketches now includes hidden 
variables so the entire are will be moved together.
Bug Fixes
When importing Excel files strings created using a 
formula were not showing up.
Dates in spreadsheets were being ignored for GET XLS 
DATA.
Format strings in custom reports and titles were not 
being recognized.
DSS Double Precision only: Compiling of models was not 
working properly.
DSS Only: SIMULATE>READCIN was reading changes in 
addition to changes files specified in the changes 
list and not relative to the base model parameters.
DLL Only: The minimal DLL was not reading in model 
settings (changes and data files) when opening a model 
package.
DSS Only: Calibration Payoffs using comparison to data 
from an ODBC query were not being recognized.
Sometimes attempting to display custom tables with no 
datasets loaded would cause Vensim to hang.
Exporting custom tables with formatted values would 
export to Excel as the wrong values.
Adding a variable by dragging the Var sketch tool to a 
position could result in a word with a black 
background color.
Navigation buttons placed over tool output windows 
were not working.
The Stats tool was not scrolling its output.
Line spacing in the Stats and Table tools could be 
distorted when other tools were open.
The Stats tool would sometimes use more data points 
than the global time axis setting would indicate.
Undo was not working with sketch elements were moved 
or sized by selecting them and using the arrow keys. 
(Not PLE/Plus) The function DELAY_CONVEYOR was not 
returning the correct results when the delay time was 
changed. NOTE using resume on a dataset created in 
earlier versions of Vensim for models using DELAY 
CONVEYOR may return spurious results.
Pasting into a view with an active template could 
result in an error message when the model was saved.
Legend fonts would get very big for graphs shrunk very 
small.

5.5c Changes
Template View
You can now designate a view to be the Template view. 
This means that the view contents will be displayed in 
every other view. This is very convenient if you have 
created special labeling or navigation controls that 
you would like to appear in every view. Instead of 
copying and pasting the common elements you can simply 
put them in the Template view. To designate a view as 
the Template view (there can only be 1) use the menu 
item View>Template View. To specify whether or not a 
view includes the template use the menu item View>Use 
Template (by default the template is used). Elements 
from the template are read-only and the navigation 
links are active independent of which Sketch tool is 
selected.
Models containing a template view that are opened in 
earlier versions of Vensim will not display the 
Template in other views and its marking as the 
Template view will be lost, though the view itself 
will not be changed.
Other Changes
Navigation comments have had a next view and previous 
view option added to simplify common navigation setups 
(especially when using a Template view).
When Rates are added to or removed from Levels and the 
Equation Editor is opened it will attempt to update 
the equation for the Level. It will do this if there 
is only one equation for the Level and that equation 
is made up of additions and subtractions of Rates. 
When a new equation is entered in this manner the 
equation will be highlighted and the Cancel button 
relabeled to "Revert." Click on Revert to get the 
previous equation for the variable
A Sketch Tools can be used a single time by pressing 
the mouse button on the tool and releasing it at the 
point you want to apply the tool. After use the 
previously selected sketch tool will be reverted to.
Pro/DSS only: The payoff report now includes a list of 
all variables (Data, Constants and Lookups) that have 
sources outside of Vensim along with the name of the 
source file. In the case of ODBC inputs the .vdi 
control file is named.
The format string in Custom Tables (and also the Table 
tool) can be used to add prefixes to numbers. For 
example you can simply specify $ to begin each number 
with $. If no proper formatting string in the form %f 
or %g follows the prefix will be added to the Vensim 
formatted number.
Picture Paste of sketches now adds automatically 
includes Shadow variables in the set of selected 
variables.
Graph legends are set to a smaller font for long 
legends.
A new option :LINE-COLOR has been added to variables 
on custom graphs. Specify the color in red-green-blue 
format where each component is between 0 and 255. For 
example
:GRAPH Test
:VAR profit
:LINE-COLOR 0-255-0

to force a green line. This option is only available 
when editing the .vgd file directly – it is not in the 
graph definition dialog.
Model Reader Only: Time Base can be selected from the 
Time Axis control.
Bug fixes
Opening a model from the file manager when Vensim was 
not open would sometimes cause a RMS3321 error to be 
reported.
Model Reader Only: Support for alternative integration 
techniques was not fully implemented.
Running SyntheSim on packaged models could cause 
Vensim to close.
DSS Only: In Venapps - A SETWBITEM command would 
trigger callbacks to a SETWB control. TEXTMENU items 
were losing their highlighting There were memory leaks 
associated with editing Venapp screens and loading 
toolsets. Editing of Screens containing a SETWB 
control could cause Vensim to close when the Venapp 
was run.
DSS Only: User Venapp or DLL commands to set variable 
values when the variable contains an ampersand & would 
not work.
Starting SyntheSim for models using Excel inputs would 
sometimes leave a work in progress window open.
Models using '?...' filenames in GET XLS 
CONSTANTS/LOOKUPS functions would sometimes fail to 
open causing Vensim to close.
5.5b Changes
The Vensim Model Reader has been changed so that when 
working with Packaged Models it will load the toolset 
the packaged model was saved with. This guarantees 
that any embedded graphs will display as they do when 
developed. The additional tools available also ensure 
that the custom graphs, tables and reports are 
displayed as expected. The number of integration 
techniques available in the Model Reader has also been 
changed to ensure that the simulation results are the 
same.
The GET XLS… functions have been redone to be more 
reliable, and should be significantly faster on 
computers using anti-spyware software. When Excel is 
required Vensim will wait for it to open before 
proceeding. Specifying the Row and Column letters is 
no longer necessary for international versions of 
Excel. These functions will also work when calling the 
Vensim DLL from within Excel. 
Auxiliary variables with embedded Lookups will now 
open the Lookup Editor on their own name instead of 
their name with ## around it. It is now also possible 
to use MODTABLE controls in Venapps on these 
variables. 
DLL Only: The command FILE>MEMFILE will cause memory 
files only to be used when doing simulations.
Bug fixes
Models with both TIME_SHIFT and data equations having 
just a constant on the right hand side would sometimes 
give spurious errors.
Custom Graphs with DOTS only could sometimes fail to 
draw correctly.
Views with embedded graphs could show ghost outlines 
when auto center was enabled.
Not PLE/Plus If a backup path was set the backup was 
not working after the first save and local backups 
were made instead.
GED VDF DATA was returning spurious values in 
SyntheSim mode. Documentation on usage has also been 
expanded.
SyntheSim with packaged models would repeatedly give 
spurious messages about a run being part of a package.
The wrld3-03.vmf model had some small discrepancies 
with the book model that have been corrected, as well 
as some general cleanup.
Runs containing data variables and discrete delays 
were not being read properly when moved between Mac 
and PC.
Sum functions embedded in the rates of Level equations 
were causing extra computations that could lead to 
spurious error messages.

5.5a Changes
On the table tool with time running across the second 
and later runs have the run name shown in the first 
column as " : runname" to make it easier to determine 
which row is from which run. Same for the Stats tool.
You can now use Ctrl+1 to invoke the first analysis 
tools, Ctrl+2 for the second and so on (Shift+Ctrl to 
lock/unlock). This will only work for the first 10 
analysis tools.
Bug fixes
There was a backward compatibility problem in version 
5.5 with some variables losing their shape. To correct 
this, open the model in 5.5a or later and then save it 
again as a .mdl file (or use Reform/Clean if it is a 
.vmf file).
Custom Graphs using subscripted variables were not 
consistently displaying these variables.
Canceling when using the Add Variable or Add Shadow 
Variable tool would cause Vensim to close. A similar 
problem would occur when converting a variable to a 
shadow variable.
Converting a variable to a shadow variable was not 
generating an undo action.
Selecting a password protected archive from the bottom 
of the File menu would fail to open the archive 
because of a password mismatch even though no password 
had been entered.
Opening an archive in configurations other than Vensim 
DSS could result in an error message about external 
functions even when these were not part of the 
archive.
For double precision Vensim DSS models using DELAY… 
functions could unexpectedly close during optimization 
and sensitivity simulations.
The document tool with equation numbering turned on 
and order by group selected would skip equation 
numbers between groups.
Importing data from newer .xls files would miss values 
depending on options settings.
Packaging large models could fail with a sub-block 
allocation error message.
Leading and trailing spaces on quoted variables would 
not allows be removed resulting in failure to select 
these variables into the workbench.
5.5 Changes
Model and Application Archives
The publication of models can now be done using the 
menu item File>Publish. This will create an archive 
containing the model and support files. This makes it 
more likely the people receiving the model will have 
everything they need to run it, and also allows you 
more protection over how the model can be used.  See 
Chapter 19 of the User’s Guide for more details.
Other Changes
Importing data from Excel files now supports current 
versions of Excel. If you open a file with multiple 
tabs you will be asked to select the tab to work with.
Speed problems associated with GET XLS… functions on 
computers with Microsoft AntiSpyware installed have 
been alleviated, though there is still a significant 
slowdown when this is active.
When in SyntheSim mode Vensim now uses memory based 
files. This speeds performance especially on computers 
running antivirus software. You can force Vensim to 
use files on disk by selecting this option on the 
"Sketch" tab of the Model Settings dialog.
(Not PLE/Plus/Standard) The slider dialog in 
SyntheSim, which is opened by clicking on the slider 
rails, now has a button to open the constant changes 
dialog for all elements of a subscripted variable. In 
addition is you change the current value and then 
select a different subscript the change will be 
retained and not discarded. There is no change to the 
dialog for Constants that are not subscripted.
Not PLE - The functions GET VDF DATA, GET VDF LOOKUPS 
and GET VDF CONSTANTS have been added. These allow you 
to access results from other models, or imported data, 
in a highly controlled manner. For more details see 
Chapter 4 of the Reference Manual.
The GET XLS… functions can now make limited use of 
string variables as arguments. String variables used 
as arguments can’t be subscripted and for CONSTANTS 
and LOOKUPS only the model value of the String 
variable will be used, never a modified value read via 
a changes file or SETVAL command. For GET XLS DATA the 
changes will be read first and will apply to the data 
fetch. Also, for GET XLS CONSTANTS you can specify a 
transpose by appending a * to the first cell location 
(see the Reference Manual for details).
When you change shape on a word that you have 
previously sized, the size of the word is left 
unchanged.
Unit format and order is no longer changed when doing 
Model>Reform/Clean.
DSS Only - For Java users the venjava.dll file is no 
longer needed. The Vensim class has also been packaged 
in a .jar file (vensim.jar) as com/vensim/Vensim to 
simplify use with other packages. The Vensim class is 
now initialized with the name of the DLL file to use 
so that you can direct the calls to use vendlm32.dll 
by initializing Vensim with "vendlm32" as the 
argument.  See VensimApp.java for an example of this. 
The sample application itself has not been put in a 
.jar file but you may want to do so with yours.
Pro/DSS Only – when the optimizer finds the first 
floating point error it will report the parameter 
values generating it.
Sensitivity and optimization search constants that are 
used in data equations will cause an error to be 
reported and the Sensitivity Simulation/Optimization 
will not proceed. Data equations are computed before 
simulation begins and changing these constants has no 
impact on the computed data. This will prevent 
anomalous results.
Exporting datasets to the datalist format now allows 
for the insertion of additional columns. 
The wrld3-91 model has been replaced with wrld3-03 
which is the updated version used in the most recent 
edition of The Limits to Growth.
Bug fixes
DSS Double Precision Only – the use of DELAY… 
functions could cause odd numerical problems such as a 
level going to a small (positive or negative) number 
after a delayed outflow.
DSS Only MODTABLE in Venapps was allowing the 
modification of Lookups even after a game had been 
started.
Pro/DSS Only – the text editor was not displaying 
status on the bottom status bar after Find/Search and 
Replace. 
Pro/DSS Only – the function INVERT MATRIX could cause 
Vensim to close during simulation.
Importing data from an excel format file with long 
strings could cause Vensim to close unexpectedly.
Pro/DSS Only - Selecting subscript specific variables 
into the workbench would fail if one of the subscripts 
started with a single letter followed by a space.
Pro/DSS Only – FIND ZERO would cause Vensim to close 
when passed a number of elements argument of 0.
Pro/DSS Only - Options flags were not being properly 
reset on variables when the options were removed in 
the text editor.
Terse format output for Lookups with reference lines 
was incorrectly formatting the reference line causing 
failure of Model>Reform/Clean.
Use of the SIMULTANEOUS function with multiple 
simultaneous loops could lead to ambiguities in 
equation ordering.
Variable names with leading quotes were sometimes 
being stored incorrectly resulting in errors reading 
models.
Clicking on the quoted variable name in the Table tool 
would not select it to the workbench.
Not PLE or PLE Plus - Locking the Table tool could 
result in Vensim closing with an out of memory 
message.
DSS Only – model compilation would fail when compiling 
after stopping a simulation.
DSS Only – ODBC output files would write an entire 
array even when the save list specified a subset of 
the elements.
DSS Only – selecting the Workbench command in the 
graphical Venapp Editor would cause Vensim to close.
Custom Graphs or Tables with variables containing a 
comma , would split the variable name up after saving 
and reopening the model.
Custom tables would sometimes cause Vensim to exit 
when there was no run loaded. Lines beginning with 
spaces were also displaying a vertical bar |.
Syntax errors involving literal strings embedded in 
expressions were not being caught.
Not PLE/PLE Plus – string assignments in changes files 
were not working properly.
Sometimes after an error reading a .cin file a second 
simulation attempt would not report the errors in the 
.cin file but simply fail to simulate.
Units and comments on String variables were being lost 
when models were saved and reopened.
Note PLE/PLE Plus – The sketch variable list on the 
right (when made visible) now allows multiple 
selections to add a number of variables to a sketch at 
once. The variables are added one below the next 
wherever you click.
Importing datasets did not record the subscript count 
properly for the export of the dataset to be able to 
break subscripts up into their own columns.

5.4d Changes
Scrolling, Positioning and Zooming
A number of new shortcuts for scrolling and zooming 
have been added. For the scrollable analysis tools 
(Outline, Document, Table, Stats, Unit Check and so 
on) you can use the keyboard to scroll the windows. 
The arrow keys can be used to scroll up, down, left 
and right. The Page Up and Page  Down keys move up and 
down or, if you hold down the Shift (or Control) key 
left and right. 
When working on Sketches you can now reposition the 
sketch by dragging it with the right mouse button, or 
holding down the Control key (or Apple key) and 
dragging. The sketch position will move with the mouse 
pointer to the scroll extents then stop moving.
You can zoom in and out of a sketch by holding down 
the Shift key and dragging with the right mouse 
button, or simultaneously holding down the Shift and 
Control (or Apple) keys and dragging. When you do this 
the point in the sketch underneath the original mouse 
pointer position will stay in place while the sketch 
zooms in or out around it. To increase the displayed 
size of the sketch (zoom in) move the mouse pointer 
up, do decrease it move the mouse pointer down. Right 
and left movements do not have any effect when 
changing the zoom in this manner.
Both the dragging and zooming on the sketch work 
regardless of which Sketch tool you are working with, 
including the Lock tool. This makes it easy to 
navigate around within a sketch as you are editing it 
and also while doing analysis or using SyntheSim.
If you have a mouse wheel you can also use this for 
scrolling now. The mouse wheel will control vertical 
scrolling. Hold down the Shift key to control 
horizontal scrolling. To zoom in and out hold down the 
Control key while moving the mouse wheel.
Exporting and Reusing Game Decisions (Not PLE or PLE 
Plus) You can now export a record of all gaming 
decisions made using Model>Export Gaming or the Venapp 
command GAME>WRITEGVARS. You can also, from the Game 
Input dialog load those decisions and rerun a game 
(also available via GAME>READGVARS). This makes it 
easier to replicate game results and transmit the 
decisions made in a compact manner. See the section  
Interactive Simulation in Chapter 8 and the Models 
menu in Chapter 16 of the Reference Manual. See the 
Vensim DSS Reference Supplement for the new Venapp 
commands.
Pro/DSS Only. Subscripts in Changes Files: The 
subscript conventions for changes files have been 
relaxed. You can use Subscript Ranges in Lookups and 
String Variables to change a range of entries. You can 
also use more than on Subscript Range. For Lookups and 
String Variables this will replace all values with the 
specified numbers or names. For Constants you can 
either use one number to replace everything or just 
supply a vector of numbers as long as all the changes 
– with the last subscript varying most quickly. 
Bug fixes
Evaluation licenses were expiring prematurely.
DSS Only – Button positioning on the subscript control 
under Venapp was not right.
Data using :RAW: could sometimes be missed when used 
in other equations (dependent on time range for the 
model).
DSS Only: Venapps using models that had GET XLS… 
functions would sometimes fail to open.
DSS Only: Compiling models for SyntheSim would leave a 
Work In Progress window open.
DSS Only: Compiling models with FIND_ZERO could 
generate incorrect results.
Navigation links pointing to outside documents or web 
pages were being removed when views were reordered.
Sometimes opening a model would give an extraneous 
message that another model could not be open.
5.4c Changes
The override dialogs in SyntheSim mode now allows you 
to specify start times for sine waves, square waves, 
exponential growth and exponential decay. This allows 
equilibrium or steady state operation before injecting 
the changing input.
The Scaling tab of the Control panel has an option to 
freeze scales in SyntheSim for slider motion then 
change them when the mouse button is released.
Graph Tool (Not PLE or PLE Plus) the graph tool 
options now allow you to suppress legends, or not 
display legends for variable and dataset combinations 
that result in no values. The latter is helpful when 
you have a large number of data files loaded, but each 
contains only some of the model variables.
The deletion of arrows is now supported using the Del 
key.
Pro/DSS only: The logic for payoff sensitivity testing 
has been adjusted. Parameter bounds will now return 
??? less frequently during payoff sensitivity testing 
after optimization.
DSS Only: Model compilation now longer puts up a stop 
message when compiling but compiles with a work in 
progress window and simulates automatically after 
compilation has been completed. If there is a problem 
with compilation the work in progress windows will 
remain open (till you close the command window 
displaying the error message or click on the Stop 
button).
Sensitivity Simulation (Not PLE) there is now an 
option to show warnings during sensitivity 
simulations. This can be useful if you want to detect 
out of range behavior that might be invalidating some 
of the simulations.
DSS Only: In Venapps the TEST command can be used to 
test the current date by using *DATE* in place of a 
variable name. See the DSS Reference Supplement for 
details.
Bug fixes
DSS Only – ODBC Connectivity -  :FIELD entries 
associated with :SELECT statements were being ignored.
Repeated deletion of variables from inside the 
equation editor could cause Vensim to close.
Checking a model with an empty reference mode would 
open an empty equation editor.
Undoing a variable addition followed by other editing 
activity could corrupt other variable names in the 
model.
Pro/DSS Only: Models using FIND_ZERO or Kalman 
filtering could give somewhat inconsistent results 
during optimization and sensitivity simulations.
Clicking on NewGS in the Graphs Tab of the control 
panel and then canceling would create an empty graph 
list without any associated graphset file.
Tooltips were being obscured by the pointer.
The document tool was not displaying text in color.
The Layout menu items for horizontal and vertical 
spacing were not grayed when fewer than 3 items were 
selected.
Pro/DSS only: Selection into the workbench of items 
containing quoted subscripts was not working 
correctly.
Pro/DSS only: Subscripted models using the ALLOCATION 
and similar functions could sometimes generate 
erroneous error messages when simulating.
5.4b Changes
VECTOR RANK function (Professional and DSS only) has 
been added. This function gives the rank order of each 
element in vector starting with 1. When two elements 
are the same they are arbitrarily assigned consecutive 
rankings. The order argument should be positive to 
rank the smallest as number 1, and negative to rank 
the largest as number 1.
Variable Count for Compiled Models (DSS Only). In the 
advanced tab you can now set the number of variables 
output to each C function in mdl.c. This must be a 
number between 20 and 2000. Setting a smaller number 
may decrease compilation time with optimizing 
compilers, but will increase it with non-optimizing 
compilers (it may also slow runtime with non-
optimizing compilers). The new default value of 100 
seems to work well with optimizing compilers.
Bottom Toolbar Font PLE, PLE Plus only. The 
Options>Options dialog now allows you to change the 
font on the bottom toolbar.
Table output scrolling has been modified so that the 
beginning of the current output is never scrolled off 
the window. For Custom Tables this means they will 
always be positioned at the top. For Table tool output 
the first line of the current display will appear at 
the top if all of the current output does not fit.
Custom Table comment lines can have leading spaces. 
This will work automatically in the dialog based 
editor, or just put a vertical bar | to indicate the 
beginning of leading spaces when editing the table 
definition file.
Bug fixes
Vertical rescaling was placing everything in the same 
place.
Font overrides in Vensim PLE and PLE Plus were not 
persistent.
Changing a variable to have no attributes (bold, 
underline etc) would sometimes not be retained when a 
model was reopened.
Searching for pattern* would not find variables with 
nonstandard characters.
Nonnumeric weights in policy payoffs were not being 
recognized.
The ALLOCATE AVAILABLE and related functions were not 
working properly on the Macintosh.
The loops tool was sometimes reporting loops with 
variables only connected by initial conditions.
Printing and exporting in SyntheSim mode would fail to 
include the sliders.
DSS Only using GETCNSTCHG with a subscripted variable 
was not working if the subscripts were included with 
the variable name.
PLE/PLE Plus overriding constants in SyntheSim 
resulted in variables that graphed incorrectly.
The Edit menu in Vensim PLE on the Macintosh was not 
being properly updated for Undo/Redo or Copy.
Professional/DSS – simultaneous equations were being 
incorrectly detected in some models using vector 
functions.
(DSS only) Constant changes read in through ODBC were 
overriding interactive changes made to constants.
(Pro/DSS Only) Parameter percent sensitivity was using 
bad values for 0 values.
5.4a Changes
Version 5.4a completes the ability to create control 
panels with PLE and also corrects a number of minor 
problems.
View>Rescale has replaced the old View>X Rescale and 
View>Y Rescale and provides more choices for adjusting 
size including the adjustment of word sizes and all 
positions both horizontally and vertically. The 
Rescale dialog allows you to select scales. See 
Chapter 5 of the Reference Manual for more details. 
Note that when moving from one computer to another you 
may be asked if you want to rescale views – this can 
be helpful for maintaining word wraps.
5.4 Changes
The most significant changes in Version 5.4 relate to 
Vensim PLE which has had Input Output objects added 
(see Chapter 12 of the User’s Guide) and Vensim PLE 
and PLE Plus which now both have the ability to 
override variable behavior during SyntheSim (see 
Chapter 13 of the User’s Guide).
Vensim PLE Plus has also had two new analysis tools 
added to help analyze Sensitivity Simulations.  The 
first is the Sensitivity Graph tool configured to 
display individual traces, and the second is the Bar 
Graph tool configured to display histograms across 
simulations at special time. These should improve the 
ability to analyze sensitivity simulations.
The majority of remaining changes in 5.4 are bug fixes 
related to model resume, data equations, ODBC 
connections to SQL Server and problems with the 
variable rename function.
In Vensim DSS Only the Venapp command
TIMEAXIS>TIMEBASE|timebasename
Has been added to allow you to set the time base that 
will be used for graph display and also for 
interpreting the @ time when fetching variable values.

5.3a Changes
Online Forum and Version Checking (not Macintosh)
Two commands have been added to the Help menu. 
Help>Online Forum takes you to an online forum in 
which you can post queries about Vensim and dynamic 
modeling in general. The forums can be read by anyone 
but you will need to create a user name and log in to 
actually post things. The second command Help>Newer 
Releases checks to see if the version of Vensim you 
are using is the most current. Both of these commands 
work by opening the default web browser and you will 
need an active connection to the internet to use them. 
Neither sends any information beyond the current 
Version number of the copy of Vensim you are using.
Modifying Variable Names
A new menu item Edit>Modify Names has been added to 
the menu that will allow you to globally change 
variable names by substituting strings within them. 
This can be useful after a copy and paste operation in 
order to line up variable names more closely with 
their intended representation.
Windows Explorer Behavior (not Macintosh)
Vensim has been modified so that when you click on a 
model in Windows Explorer with Vensim already open, 
that model is open in the current instance of Vensim 
rather than a new instance. You can still open a 
second instance of Vensim if you like by selecting it 
from the Start menu.
WIP Graphs (Not PLE)
The automatic display of Work in Progress graphs is 
now optional, and off by default. To enable display 
check "Open WIP Graph on Sim" on the Graphs tab of the 
Control Panel. If you have embedded a WIP graph in a 
sketch it will continue to display during simulation. 
It is only the creation of new graph windows when 
there are no embedded WIP graphs that is prevented.
Equation Editor Navigation (Standard, Pro and DSS 
only) A previous button <-- has been added to the 
navigation buttons on the Equation Editor. This is 
useful to return to the equation you were last editing 
after going to a new equation with Hilite or Sel… 
(renamed from Choose).
Undefined Subscripts (Pro and DSS only)  When 
subscripted variables contain some elements that are 
not defined those elements will not have values. By 
default the analysis tools will display the names of 
the subscript elements, but no values. If you would 
like to suppress this and only see those subscript 
combinations that are defined check the "Skip 
Undefined" checkbox at the bottom of the subscript 
control. Note that if none of the currently selected 
subscripts elements are defined this may result in the 
display of a subscript combination that is not 
selected.
Editing Subranges (Pro and DSS only) There is not a 
button on the Full version of the subscript control 
(Click on "Full" on the Subscript Control dialog) that 
will allow you to go to the editor for a Subrange. 
Just click on the Subrange and then click on the "---" 
button to edit.
Command Changes - DSS Only
A number of commands have been added to make it easier 
to work with Sketches in Venapps
SKETCH>SHOWBEHAVIOR|skid|1 or 0 
Turn on and off the display of behavior on the sketch. 
Note that when SyntheSim is active this will have no 
immediate effect since behavior is always shown in 
SyntheSim mode.
SKETCH>SHOWHIDDEN|skid|n + or – 
Change the level to which to show hidden elements. You 
can use + and – to increase or decrease it, or specify 
the level as a number.
SKETCH>SYNTHVISIBLE|skid|O
After entering SyntheSim mode you can specify that you 
want to restrict the simulation to the variables 
currently visible in the sketch. Combining this with 
SHOWHIDDEN allows you to demonstrate the impact of 
adding structure.
SKETCH>RUNVISIBLE|skid|O
This command is used in place of MENU>RUN when you 
want to restrict the simulation to variables currently 
visible on the sketch. Similar to SKETCH>SYNTHVISIBLE 
but for non SyntheSim simulations.
The above commands work with the Vensim DLL and the 
MSVC60 example has been modified to show this. Even if 
you do not have a C compiler you can run VenMFC.exe in 
the MSVC60 subdirectory of the DLL directory to see 
how this looks.

5.3 Changes
Hiding, Layered Presentations and Simulation (Not PLE 
or PLE Plus)
The number of depths that variables can be hidden to 
has been increased to 16.  The up and down arrow keys 
can be used to change the current hide depth being 
shown. When the Magic Wand is selected the depths 
change one at a time. If the other tools are selected, 
however, the depths will change so that there is a 
visible difference (if nothing is hidden they will 
just toggle between Hide/Show).
To create a layered presentation use the down arrow to 
hide things, then click on the Hiding Magic want and 
use the up arrow to go to hide level 16. Click on the 
last things you want to disappear, click on the up 
arrow to move to hide level 15 and click on the second 
last things you want to disappear and so on. Once you 
have finished click on the Lock tool and then the up 
and down arrow keys will move through the layered 
presentation skipping the extra hide levels in 
between.
You can also cause Vensim to simulate only the 
structure that is currently visible. This is done with 
the menu item Models>Partial Simulation>Visible 
variables. In SyntheSim mode this will cause SyntheSim 
to be performed only on the subset of the model 
currently visible. The up and down arrow keys can then 
be used to expose structure and, simultaneously, 
indicate the behavior change that results from the 
additional structure.  You can also use this as a 
method to make more or fewer sliders available for 
adjustment.
Note that restricting simulation to visible variables 
means that any variable not defined on the current 
View will be held at its initial value. This includes 
Shadow variables. This is a convenient way to isolate 
behavior to the structure you are currently working 
with, but may require some reorganization of View 
contents to convey your message.
Sensitivity Simulations (Not PLE)
Two new options have been added to sensitivity 
simulations.  The first, "Latin Grid" does a grid 
search other the probabilistic distribution of the 
various parameters. This is much like running a 
multivariate vector search but allows for non-uniform 
distributions of parameters so that the parameter 
space is sampled more coarsely in the probability 
tails. 
The second, "File" allows you to specify a file of 
constant changes. This file must be tab delimited with 
a list of constants across the top and the values in 
the lines that follow. The simulations will continue 
through the end of the file. This allows you to use 
any parameter drawings you desire as inputs to the 
sensitivity analysis.
Cut and Paste (Not PLE or PLE Plus)
When pasting structure you can now specify a prefix 
and suffix that will be used when renaming variables. 
This, allows, for example, the use of sector names to 
keep variables coherently named and can remove some of 
the tedium of renaming the variables that would have 
ended in 0, 1 and so on. If, after using the prefix 
and suffix the variable name is still not unique 
Vensim will continue to add the numeric suffixes.
Navigation Controls (Not PLE)
The navigation links have been generalized to allow 
you to switch models, open other files and access web 
sites in addition to moving around within a model. 
Vensim recognizes several file types so that opening a 
.mdl or .vmf file will open the model, a .vdf file 
will set the run name and start a simulation, a .cin 
file will read in changes, a .vgd or .vgf file will 
load the graph definitions, while .vts and .sts files 
will load the toolsets. 
(Not Macintosh) For other file types Vensim will pass 
the information to the system Shell and attempt to 
open the file based on association.  For example a 
.xls file would normally be opened with Excel.  To 
open a web site just enter the full address 
(http://www.vensim.com for example) and clicking on 
the navigation link will cause the default browser to 
open at that web location.
(DSS Only) For external files, this functionality is 
available inside a Venapp using the 
FILE>SHELL|fileorwebsite command.  For internal file 
types there are already commands to do the various 
things. Referring to a .html file can be used as an 
alternative to the SPECIAL>WINHELP command.
Export Formats
A Data List format has been added for exporting. This 
creates a tab delimited file with data in the format
Variable	Time	Value
or, if you select to show subscripts in columns, 
Variable	Sub1	Sub2	Sub3	Time	Value
This format makes it easier to read the data into 
databases and also to create Pivot tables. To get the 
data list format just select it in the export control 
dialog or, as a command use VDF2DLIST.  The default 
extension on the file created is.txt.
Suppressing Sliders in SyntheSim
If you set the minimum and maximum equal for the range 
of a constant in the equation editor no slider will be 
created for that constant in SyntheSim mode.
Graph Definitions
The keyword NO-LEGEND now works with bar graphs to 
suppress the legend, title or bar labels.
Escape Sequences and Far-Eastern Characters
In addition to using \" to represent double quotes in 
variable names you can now use \\ for a backslash and 
\_ for a hard undebar _. A backslash \ by itself will 
also appear as a backslash unless it is followed by a 
\ " or _. These changes will prevent some problems 
that occur with double byte character sets. 
If you are using a double byte character set be sure 
to check the option in Model>Settings>Sketch. Note 
that some variable names may appear incorrectly in the 
equation editor because of the use of escape 
sequences. Do not change these names in the equation 
editor; they should appear fine in the sketch and on 
output.
An option has also been added there to use hard 
underbars. Normally Vensim treats underbars and spaces 
as the same thing. If you want one or more explicit 
underbars in a variable name, check this option on the 
Model>Settings>Sketch dialog and then create or change 
the variable name. This setting only influences 
editing, it does not have any effect on the existing 
model.
Tool Font Face (PLE and PLE Plus)
You can now set Font Face to be used in tools (and the 
default Sketch Font Face) from the Options>Options 
dialog.  This is useful is you prefer something 
different from Times New Roman, or if you need a face 
that will consistently display information (for 
example a Cyrillic font). 
5.2a Changes
Vensim version 5.2a consists largely of small 
corrections and adjustments.  Most of there are 
related to reference modes.  Problems with the use of 
Reference Modes in PLE have also been fixed.
Reference Modes
The reference mode tool operation has been modified 
somewhat to work more smoothly.  See the revised 
Chapter 20 in the User’s Guide.
NOTE:  If you open a model containing reference modes 
in an older version of Vensim the reference mode 
information will be lost.  The model itself will work 
and the datasets (.vdf) files associated with the 
reference modes can still be used.
ODBC (DSS Only)
For variable names that contain non standard 
characters (eg R&D) Vensim will automatically put 
quotes around the name even if it does not have quotes 
in the database. In the UPDATE and INSERT commands you 
can specify a #literal for VARNAME and this will 
suppress the variable name.  This is useful when you 
want to update specific records that do not contain 
variable names.  The same can be done with the :SUB 
entries.
5.2 Changes
Reference Modes
Vensim version 5.2 allows you to capture and display 
reference mode behavior right on the model diagrams.  
By clicking on the new Reference Mode sketch editing 
tool you can graphically input reference modes for any 
dynamic model variable.  This can be used both to 
capture reference modes in the conceptualization phase 
of model development and to work in mental integration 
skills by specifying patterns of behavior for rates 
and viewing the levels that result via simulation.  
Chapter 20 of the User’s Guide, which is in 
preliminary form, provides examples of how to use 
reference modes in model development and for learning 
integration skills.
There is an additional tab on the model settings 
dialog that allows you to manage reverence mode data 
including importing and exporting it.
We have made some significant expansions of the 
capability of Vensim PLE in version 5.2.  Vensim PLE 
includes the ability to use reference modes and that 
means that users of Vensim PLE can now make use of 
data.  Though the ability to use data adds a small 
amount of complexity this is a small distraction given 
the benefit of having access to reference mode 
editing.  The other major addition to Vensim PLE is 
support for multiple views.  The restriction of a 
single view, instead of encouraging people to keep 
models simple, has ended up pushing people to have 
very complicated model diagrams.  This is not good 
modeling practice and hopefully allowing multiple 
Views in PLE will alleviate this problem.  We would 
still encourage you to keep your models as simple as 
possible.
Other Changes
 (Not PLE or PLE Plus) The Bar graph now has an option 
to sort the bars either ascending or descending by 
value relative to one of the loaded runs (normally the 
first would be used, but there is that flexibility).  
Use the dropdown box in the options for the Table 
tool.  For custom tables the keyword :SORT has been 
added.  Follow this by -1 to sort decreasing on the 
first dataset, 1 increasing on the first, -2 
decreasing on the second and so on.  If you ask to 
sort on a dataset that is bigger than the number 
loaded the last loaded dataset is used.
Custom Graph naming convention.  The names of custom 
graphs are no longer presented all capitalized, but 
mixed upper and lower case is allowed.  Spaces are 
still converted to underbars and, like model variable 
names, the names are case insensitive so you can’t 
create two graphs with names differing only by 
capitalization.
(Professional and DSS Only)  The Advanced tab of the 
options dialog has two new entries.  
(DSS Only) The ODBC connectivity has been modified to 
speed up data access and also to increase 
compatibility with databases running on computers with 
alternate number formatting settings (commas for 
decimal markers and so on).

5.1b Changes
Image copying has been adjusted to provide the older 
format on Windows versions before 2000 to correct 
scaling issues.  The GET XLS LOOKUPS function has been 
corrected to fetch live values before each simulation.  
(Not PLE or PLE Plus) The Changes tab of the 
simulation control dialog has been modified to allow 
you to write out the values of All constants and 
Lookups in the current simulation setup, this is in 
addition to just those that have been changed.  This 
is primarily intended as a technique for more 
completely documenting a simulation run.
(Professional/DSS Only)  The new multiple start type 
RRandom has been added.  This is the same are Random, 
but also changes the initial search order for Powell 
optimizations.  The optimizer has also been changed to 
reject any initial search points that result in 
floating point exceptions and an option has been added 
to cap the number of simulations performed during an 
optimization.
(DSS/DLL Only)  The SIMULATE>SPREADALIAS command has 
been added – see the DSS Reference Supplement.
New Allocation Functions (Pro/DSS Only)
We have generalized the allocation logic of the 
ALLOCATION BY PRIORITY function to allow for different 
prioritization shapes, and more control.  The new 
functions are ALLOCATE AVAILABLE, FIND MARKET PRICE, 
DEMAND AT PRICE and SUPPLY AT PRICE.  These functions 
are described in Chapter 4 of the Reference Manual and 
also in Appendix E of the Reference Manual.  
5.1a Changes
Copying Images
With version 5.1 on some computers copying a sketch or 
the contents of a graph would cause only a portion of 
the image to be visible.   This problem has been fixed 
in 5.1a.
Get XLS/123 Indirect File References
(Not PLE) The spreadsheet functions all take as their 
first argument the name of a file and this means that 
renaming the spreadsheet file requires changes to all 
the functions.  You can now indirectly specify a file 
by using a blank name or a question mark ? at the 
beginning of the filename. The tag following the ? 
will then be associated with a file.  This association 
can be made from the "XLS Files" tab of the Model 
Settings dialog (Model>Settings).  If the association 
has not been made, or the associated file no longer 
exists, you will be prompted for a file when you 
simulate the model.
NOTE You can specify more than one file indirectly.  
For example you might have '?Data'  for use with data 
equations and '?Constants'  for use with constant 
equations.  
(Not PLE or PLE Plus) If Vensim needs to open Excel in 
order to access data you can now set a switch to have 
Vensim close Excel when Vensim closes.  To do this 
check  "Close Excel when exiting Vensim" in the 
Startup tab of the Global Options dialog 
(Tools>Options).  If excel was already open it will 
not be closed.  Excel may display a dialog if any of 
the files opened in it are marked as changed.
Small Changes
The zoom setting of sketches is now recorded view by 
view.  This makes it easier to set the appropriate 
zoom for different parts of a model.
The Fonts2 tab of the Global Options dialog has had 
another button added to change the font appearing in 
the toolbar.  
The optimizer now reports the number of floating point 
exception simulations that occurred during an 
optimization.
(Not PLE) It is now possible to import datasets with 
more than 32,000 data point in a data series.
(DSS and Pro only) The maximum line length in the Text 
Editor has been increased to 510.
A hard limit of 255 characters has been established 
for variable names.
(Not PLE or PLE Plus) You can now choose to hide all 
shadow variables appearing in all views 
(Models>Settings>Sketch Appear).
(DLL Only) Some additional options have been added for 
fetching information about variables, including the 
type.  See the Chapter 12 of the DSS Reference 
Supplement for more details.

5.1 Changes
There are two major areas of changes for version 5.1.  
There first is the addition of a number of functions 
that are useful for doing financial computations in 
models where time can be in different units than those 
used for the financial computations.  The second, 
which is for Vensim DSS only, is the addition of input 
and output capabilities using ODBC which simplify the 
integration of Vensim models with databases.  There 
have also been a number of smaller changes and fixes 
applied.
Financial Functions (Not PLE or PLE Plus)
Financial functions operate on a fiscal period that 
can be different from both the time the model is 
written in and TIME STEP.  During this fiscal period 
most of these functions accumulate the input and then 
use the value based on the total over the fiscal 
period.  At the same time the return values of the 
functions also depend on the current value of the 
inputs.  In this sense the variables they create are 
Auxiliaries, but they are Auxiliaries with memory.    
The added functions are DEPRECIATE BY SCHEDULE to do 
financial depreciation over an irregular schedule, 
DEPRECIATE STRAIGHTLINE to do straight line financial 
depreciation, INTERNAL RATE OF RETURN, to compute the 
internal rate of return on an income stream and NET 
PRESENT VALUE to compute the net present value with 
explicit accumulating on fiscal periods (the existing 
NPV and NPVE functions use a fiscal period equal to 
TIME STEP which is not always desirable).
Detailed descriptions of these functions are available 
in Chapter 4 of the Reference manual.
Data Functions (Not PLE or PLE Plus)
Several new data functions have been added that allow 
the retrieval of information about data series.  These 
are useful when you want the model to know something 
about a data serial.  Like the other GET DATA… 
functions they are relatively slow and would normally 
be used in INITIAL equations.  The new functions are: 
GET DATA MAX, GET DATA MEAN, GET DATA MIN and GET DATA 
STDV.  Details on these are available in Chapter 4 of 
the Reference manual.
Getting Lookups from Excel (Not PLE)
In addition to getting values for Constants and Data 
from excel you can now retrieve values for Lookup 
using the function GET XLS LOOKUPS.  This function 
takes the same arguments as GET XLS DATA, but 
retrieves values for Lookups.  Like GET XLS CONSTANTS 
it reads the spreadsheet when doing model checking and 
again when simulating.  For those using 123 there is a 
function GET 123 LOOKUPS to get values.  Details in 
Chapter 4 of the Reference manual.
ODBC Connectivity (DSS only)
ODBC or Object Data Base Connectivity is a standard 
protocol for transmitting data to and from different 
databases.  Most databases, including Access and 
Oracle, have ODBC drivers which means it is now easy 
to communicate with the data sources.  ODBC 
connectivity is described in Chapter 14 of the Vensim 
DSS Reference Supplement.
Command Additions (DSS only)
SPECIAL>RUNCOMMAND|commandfile
Use this from within a Venapp or a command file to run 
another command file or execute and ODBC output (.vdo) 
file.  Vensim will determine which of these to do 
based on the file extension.
Automated Script Running (DSS only)
The Simulation Control dialog has had a new tab 
(Pre/Post) added that allows you to specify command 
scripts for pre and post processing.  The Pre 
Processing script will be run before the simulation is 
made.  You can specify more than one script by 
separating them by commas.  This could be used, for 
example, to automatically convert a data file to a 
.vdf file before a simulation is started. 
The Post Processing script will be run after the 
simulation is completed.  In this field you can 
specify one or more command (.cmd) or database output 
(.vdo) files that will be executed automatically after 
a simulation is completed.  This makes it easy to 
write results to a database and also to automatically 
export results to text files after a simulation is 
run.
Small Changes and Fixes
Ctrl+B can be used to turn SyntheSim mode on and off 
(just as B can be used to toggle the display of 
behavior on and off). 
Payoff reports now have the same name as the run.  
Thus for each optimization there will be a runname.vdf 
file with the final simulation, a runname.out file 
with the final parameters, a runname.log file with the 
message history and, if requested, a runname.rep file 
with the payoff report.
An external function can now be defined to be a lookup 
definition function.
The Lookup Editor now displays the graph for the 
lookup in Blue instead of black to more easily 
distinguish it from the background grid.
The use of :LOOK FORWARD: was returning the next data 
value at times for which a data value existed instead 
of the data value.  This was not consistent with the 
documentation and has been corrected in version 5.1.
When an optimization is performed in addition to the 
runname.out file that shows the results of the 
optimization a runname.log file is created that shows 
output that goes to the error window during 
optimization.  In addition, for particularly long 
optimizations, the output to the windows will be 
truncated and that information will only go to the log 
file.  Also, the .out file with intermediate results 
is updated periodically during the optimization in 
case there is a power or other failure that prevents a 
clean closing of Vensim.
5.0c Changes
Version 5.0c contains a number of bug fixes and small 
changes.  Some adjustments have been made to the new 
graph styles and these can now be used as work in 
progress graphs.
European Style Numbers
(Not PLE or PLE Plus) An option has been added to 
display numbers in European format  (xxx.xxx.xxx,xx) 
on the Settings tab of the Global Options dialog 
(Tools>Options).  Numbers will be displayed in the 
selected manner on tabular and graphical output.  Note 
that all input, and sliders used during SyntheSim, 
will still use a period . for the decimal divider.
(Not PLE) When numbers are exported to Tab delimited 
files there is also a new checkbox that will allow you 
to select European number format.  This should make it 
easier to bring the numbers into spreadsheet programs.
Note that because of the syntax of the Vensim modeling 
language, with commas separating arguments in 
functions, it is not possible to use a comma as a 
decimal place throughout.  Thus, while Vensim will 
still require you to be numerically facile, the above 
changes should make it easier to show work to others 
who are not.
Clipboard Format for Exporting
Export from tables now puts information into the 
clipboard in a native Excel format in addition to the 
text format.  This will make it easier to import 
information into Excel, especially for European 
language versions.  If the older text format is 
preferred use the Paste Special command from the 
receiving application.
Analysis Tools for PLE, PLE Plus and Model Reader
An additional analysis tool – Table Time Down – has 
been added to Vensim PLE, PLE Plus and the Model 
Reader.  This tool makes it easier to view and copy 
data from models with large numbers of times.  This 
tool is also contained in the built in toolset for the 
other configurations.
Units Checking from Equation Editor
The equation Editor now has a button labeled Units: 
that can be used to check the units of the current 
equation.  If the units are OK then a message will 
appear at the bottom of the dialog saying so.  If 
there is a problem with units on the right hand side 
of the equation a message stating this will appear at 
the bottom.  For details on the error you will need to 
use the Units Check function.  If the right hand side 
units can be determined, but do not match the units 
specified a message will be displayed asking if you 
want to replace the current units with those indicated 
by the right hand side.  If there are no units 
currently specified and the units for the right hand 
side of the equation can be determined these will be 
inserted as the current units.
Subranges in the Equation Editor (Professional and DSS 
Only)
When subranges appear on the left hand side of an 
equation and new variables are added to the equation 
the Equation Editor will attempt to match those 
subscripts to what appears on the left of the 
equation.  This should decrease the number of times it 
is necessary to overwrite the subscripts automatically 
put in.
Format Specification in Table Tool (not PLE or PLE 
Plus)
In addition to the Pretty/Scientific choice you can 
now specify the format for output from the Table tool.  
Just enter the C formatting string in the options 
dialog.  Typically you would want to enter %.4g for 4 
significant digits, %.5g for 5 and so on.  This can be 
handy if you want to control the number of digits 
displayed.
5.0b Changes
Version 5.0b includes a number of bug fixes and small 
changes along with a preliminary form of the new 
custom graphs.
Custom Graphs
Version 5.0b includes a number of new representations 
for custom graphs including 3d Graphs, Ribbon Graphs 
and Area Graphs.  These can be accessed from the 
Custom Graph editor by selecting a different graph 
type.  For example the type Ribbon displays as:
 
The new custom graph formats are in a preliminary 
form.  There are a number of scaling, margin and font 
size issues that need to be addressed.  In addition, 
the graphs can’t be used for the selection of 
workbench variables.  We will also be redoing the 
graph definition process in the next Vensim release to 
allow more control over graph appearance.  
Nonetheless, you can still get some pretty nice 
results with the current definition interface.
The new graph formats are both backward and forward 
compatible.  A graph defined using a new format will 
be displayed in the old custom graph format in older 
Vensim versions.  While the layout and proportions of 
the graph elements may be slightly different in future 
Vensim releases, the graph content will be the same.
Other Changes
Bitmaps can now be placed onto a Sketch View directly 
from a .bmp file rather than by going through the 
clipboard.   In addition, Vensim now maintains the 
original bitmap image file size, rather than the large 
files that it used to create.  If you have an existing 
model with embedded bitmaps you may wish to bring 
those in again to reduce file sizes.
 (NOT PLE) Added the menu item "from .dat format" to 
the Model menu to allow importing data files laid out 
in the .dat format but having different extensions 
(such as .err).  This simplifies loading of report 
output files created during optimization.
(DSS & Professional only)Variables specified in 
savelists can now use Subscript Ranges to save parts 
of a Subscripted variable.  Similarly, Custom Tables 
use subscripts the same way Custom Graphs do.
(DSS only)  Note that the installer no longer 
associates .cmd files with Vensim as this file type is 
a system file type for Windows NT/2K/XP.  If you want 
to restore .cmd files to their system default use the 
regedit program to change the association of .cmd 
under HKEY_CLASSES_ROOT from "Vensim.script" to 
"cmdfile".  If you want to start a script you will 
need to start it from within Vensim or by passing the 
name of the command script when starting Vensim.
5.0a Changes
The most important changes in 5.0a relate to the 
documentation.  A new chapter has been added to the 
Reference manual, two chapters in the modeling guide 
completed, the User Guide cleaned up and the graphics 
corrected for proper screen presentation.  A number of 
bugs and annoyances have also been cleaned up in the 
software.
When a floating point error occurs in SyntheSim a 
message will appear in the status bar at the bottom 
indicating what has happened.  This is helpful for 
understanding why the graphs are behaving 
unexpectedly.
When creating custom Stack Graphs you can specify how 
many variables you want stacked.  The remaining 
variables will just be graphed as ordinary variables.
(Not PLE or PLE Plus) The simulation control dialog 
now has a Set button.  Clicking on the Set button will 
start or return you to Simulation Setup mode.
(Not PLE or PLE Plus) The Bar graph options dialog has 
changed and will also allow you to construct 
histograms across subscript ranges.
(Not PLE or PLE Plus) In the equation editor you can 
use Ctrl+PgUp and Ctrl_PgDn to mover from one variable 
to the next.  Ctrl+ and Ctrl+ move between equations 
for variables with multiple equations.
SyntheSim

With Vensim 5 you can synthesize model structure and 
simulation behavior - we call this feature SyntheSim 
for Synthesis of Simulations.  Vensim allows you to 
see the results of simulations superimposed on the 
model diagrams and instantly updates these displays as 
you change model Constants and Lookups.  SyntheSim 
requires a simulatable model, but you don't need to do 
anything special to it.  Just click on the SyntheSim 
Icon ( ) or select SyntheSim from the simulation 
control dialog.  Once you do this you will see small 
graphs over all dynamic variables and sliders will be 
created for all the constants.  As you move a slider 
the model will be simulated and the graphs 
automatically drawn.
You can also view behavior without entering SyntheSim 
mode by selecting the Show Behavior menu item on the 
View menu.  This will display whichever runs are 
loaded and can be left on as you build and make 
adjustments to the model.  This is also useful for 
very large models that are too big to use in SyntheSim 
mode.
SyntheSim Options:  You control the behavior of 
SyntheSim graphs from the Scaling Tab of the Control 
Panel.  Colorize, if checked, will cause SyntheSim 
graphs to flash Red when the scale is expanding and 
Blue when it is contracting.  Freeze, if checked, will 
cause the scales to stay unchanged until the mouse 
button is released.  Include 0, if checked, makes sure 
that 0 is in every SyntheSim graph.  Finally the 
Buffer Mult determines how much rescaling occurs when 
it is necessary to expand the scales as well as the 
threshold for contracting the scale.  For big models 
there is an option to prevent simulation except on 
button releases.  This is set from the  Sketch 
Appearance tab of the Model>Settings dialog.
Changing Structure (Not in PLE):  In addition to 
making changes to Constants and Lookups SyntheSim 
makes it very convenient to cut feedback loops.  Just 
pick a variable that you would like to change and 
click on it with the right mouse button (or Control-
Click on it).  A dialog will open allowing you to make 
changes.
Uncheck Override normal behavior to have the variable 
revert to normal behavior, or select one of the Input 
TimeShapes desired.  Note that any variable can be 
turned into a constant with a slider, but this 
selection will be grayed for constants since this is 
their normal behavior.  Depending on the type of shape 
you will also need to parameterize the shape.
You can make the variable behave like a constant, or 
force a time pattern of behavior on it.  You can also 
use this technique to turn constants into time varying 
inputs.
Check on the Freeze Levels at initial values button to 
study the local responses (no feedback) to variable 
changes.  You can change the behavior of as many 
variables as you wish.
Runs:  The SyntheSim graphs display values from all 
the loaded runs. You can load, unload and reorder runs 
from the Control Panel at any time.  If you want to 
keep the currently displayed results just change the 
run name to begin storing to another dataset.  As you 
type in the run name you will see a marker if the run 
name you are typing matches an existing run name.
Subscripts:  For subscripted variables the subscript 
element displayed is determined by the first selected 
subscript in the Subscript Selection dialog.  As you 
change the subscript selection the values displayed 
will change.

Behavior Changes
Single Clicking
With the exception of the Text Editor, single clicking 
is now used universally for selection.  When working 
with tool output you can still highlight a portion of 
a variable by dragging over it and the selection will 
occur when you release the mouse button.
Sketch Sizing
Sketch sizing of variable names and shapes is now 
continuous and anchors the upper left (top center for 
some shapes and center for rates) instead of the 
center.  This makes it easier to adjust sizes and also 
allows you to see the word wrapping that will occur as 
you adjust the size of the shape around a variable.
Related to this the Run name window on the top toolbar 
is larger and may resize when you adjust Vensim's 
window size.
Model Comparison
On the Model menu select Compare To... to compare the 
model you have open to another model.  This is a 
useful way of seeing small changes in model structure, 
equations or comments.  The output is a simple report 
listing the changes that have been found.
Delay Dashes
The delay markings on arrows are now rendered as 
double dashes to make them more consistent with 
standard practice.
Function List (in Equation editor)
The function list in the equation editor now displays 
arguments when you click on a function name.  To bring 
the function name into the equation click on the Add 
Sel button or press the Enter key.
Model Setting
This dialog has been rearranged somewhat.

Function and Language Changes
The NPV function has changed and there have been a 
number of new functions added.  
NPV(s,r,ini,m)
The NPV (Net Present Value) function has been changed 
so that the reported value includes the current 
activity.  That is NPV(income,.1,0,1) used to start at 
0 and will now start at income*Time Step.  
NPVE(s,r,ini,m)
The NPVE function is the same as the NPV function 
except that it values the stream at the end of each 
interval and treats intervals as discrete.  This 
function computes NPV the same way Excel does and so 
may be easier for some purposes.
DELAY_BATCH(in,bs,bt,ibs,ibo,ibl)   causes a batch 
delay of the input in   which will cumulate until it 
is at least as big as the batch size bs   at which 
time it will begin processing to be released at 
Time+bt where bt   is the batch time.  While a batch 
is in process no other batches will begin processing.  
If the initial batch size ibs is positive then it will 
initialize with that batch in process and release it 
at the initial batch output time ibo.  Note that if 
ibo is less than or equal to INITIAL TIME the initial 
output will be ibs.  You can use the initial backlog 
ibl to specify material initially available for 
processing but not in process.
DELAY_CONVEYOR(in,t,lr,ip,iq,it) creates a conveyor of 
the input in   with conveyance time t and leakage rate 
lr.  Leakage occurs across all material in the 
conveyor, including that which has just come in.  The 
initial profile of material is specified by the lookup 
ip   with iq giving the initial total quantity of 
material in the conveyor.  it   specified the initial 
conveyance time and should almost always be the same 
at t.  You can change t to speed or slow the conveyor.
GET DATA AT TIME(D,T)	The value for the data 
variable D at time T   or :NA: if not available.
GET DATA BETWEEN TIMES(d,t,im) Returns :NA: if t is 
before the beginning or after the end of the data 
series, otherwise returns value.  If im   is -1 it 
returns the value that occurs at a time less than or 
equal to the speficied time, is im   is +1 it returns 
the value at a time greater than or equal to the 
specified time and if im is 0 it returns an 
interpolated value.  Note that a data value occuring 
within 1/2 of a Time Step of t is treated as occuring 
at t.  If t is :NA: the first datapoint is returned.
GET DATA FIRST TIME(d)  Returns the time for the first 
data value in the data variable d.  
GET DATA LAST TIME(d)  Returns the time for the last 
data value in the data variable d.  
GET DATA TOTAL POINTS(d)  Returns the total number of 
data points for the data variable d.  
LOOKUP INVERT(look,y)  Returns the value of x which, 
when passed through the lookup look would return y.  
If no value of x would generate y then :NA: is 
returned so it is important to test this output.  If 
multiple values of x would generate y the smallest 
value will be returned.
LOOKUP SLOPE(look,y,mode)  Returns the slope of the 
lookup.  If mode is -1 then NA is returned outside the 
Lookup’s domain.  If mode is 0 then 0 is returned out 
of the Lookup’s domain..  If mode is 1 then the first 
slope is reported below the Lookup domain, and the 
last slope reported above it.
VECTOR SORT ORDER(a,d)  Returns the order that the 
elements of the vector a   must be arranged in to be 
increasing (if d is +1) or decreasing (is d is -1).  
This is useful for finding the index of the biggest or 
smallest element and also for reordering a vector 
using the VECTOR REORDER function.  For example
company : (c1-c5)->scompany
scompany <-> company
so[scompany]=VECTOR SORT ORDER(revenue[company],1)
minrev = VECTOR ELM MAP(revenue[c1],so[c1])
maxrev = VECTOR ELM MAP(revenue[c1],so[c5])
sorted rev[scompany] = VECTOR REORDER(
		revenue[company],so[scompany])

Note that it is not necessary to use the subscript 
scompany in the above example, all the equations could 
have been written with company and the results would 
have been the same.  The use of scompany was to 
emphasize that the meaning of the order has changed.
The values returned are 0 based so that they can be 
used with the VECTOR ELM MAP function.  That is, the 
first entry is the number of steps from the first 
element of the underlying vector to the position of 
the minimum/maximum element.
VECTOR REORDER(a,so)  Sorts the elements of the Vector 
a according to the order defined in so.  See the above 
example.  

Language Changes
In the range for each variable you can include an 
increment in addition to the minimum and maximum 
values.  This is only used for setting slider ranges 
in SyntheSim.  The format is just units 
[minval,maxval,increment] or, in the equation editor, 
you can fill in the three separate edit boxes.
(Pro and DSS Only)  You can specify unsubscripted 
model variables inside of macro definitions by 
applying a $ suffix.  For example Time$ can be used to 
represent time and TIME STEP$ to represent TIME STEP.  
Those are actually the two most useful variables to 
have available without requiring them as argments in 
the MACRO use.

DLL Venapp and Command Changes


Commands (Venapp/DLL/Command Scripts)
MENU>SENS2TAB|vdffile|tabfile|*![#
Converts a sensitivity simulation file to a tab 
delimited file.  This command will fail silently if 
vdffile is not the result of a sensitivity simulation.  
A number of options can follow the name of the output 
file.
* 	causes the simulation index (or time if # is 
specified) to run down instead of across.
!	causes only the values at final time to be 
exported.
#	causes the variables names to be modified by 
simulation number instead of time (only applies when ! 
is not specified).
[ 	causes the variable names to be modified using a 
subscript instead of a prefix (only applies when ! is 
not specified).
MENU>SYNTHESIM|O   (Not in Command files or Minimal 
DLL)
Starts SyntheSim mode.  Use O to overwrite the 
existing run without prompting.  In SyntheSim mode all 
changes to model values will trigger simulations and 
Venapp sliders will simulate as they are moved, saving 
the results when they are released.  If you display a 
sketch in SyntheSim mode the behavior graphs for each 
variable will be displayed, but the sliders will not 
be created.
To leave SyntheSim mode use SPECIAL>STOPSIM.
SYNTHESIM>AUTO|n (n is 0 or 1) (Not in Command files 
or Minimal DLL)
By default when the MENU>SYNTHESIM command is used the 
model will be resimulated whenever a model Constant or 
Lookup is changed.  This behavior can be suppressed by 
calling SYNTHESIM>AUTO|0 (zero) to run off automatic 
simulation.  This is useful if you want to set a 
number of values at once without each change causing a 
new simulation.  When you turn off automatic 
resimulation you will need to explicitly invoke 
SYNTHESIM>GO.
SYNTHESIM>GO|n (n is 0 or 1) (Not in Command files or 
Minimal DLL)
When in SyntheSim mode causes a simulation to be 
performed.  This command is only useful if you have 
turned off automatic simulation.  If it is called with 
the optional argument of 0 the results will not be 
saved to disk and that any visible graphs will not 
have the scales reset.  See also the 
vensim_synthesim_vals and vensim_get_data.
DLL Functions
vensim_synthesim_vals(unsigned long offset,float 
**x,float **y) (not in minimal DLL)
This function can only be called after MENU>SYNTHESIM.  
It will fetch the time and variable values for an 
offset as returned by vensim_get_varoff.  Vensim 
allocates the memory for the results and will also 
manage its disposal.  The returned pointers should be 
treated as read only pointers and are valid till the 
next action that will case a simulation to be made or 
synthesim mode to be exited.  
Returns the number of data points from the most recent 
simulation.
The first time you call vensim_synthesim_vals with a 
given offset the values returned will be from the most 
recently saved dataset.  Thus if you have exectued 
SYNTHESIM>GO|0 with the 0 flag the values may not be 
current.  However, if you execture SYNTHESIM>GO|0 
again all successive calls to vensim_synthesim_vals 
will return the current results.  
vensim_synthesim_vals is very fast and can be called 
directly by drawing routines to determine variable 
values.  Using only vensim_synthesim_vals and 
SYNTHESIM>GO|0 is the fastest way to perform 
simulations and retrieve results.
See the example under MSVC60 that shows how this 
function can be used.
vensim_get_varattrib - has been changed so that it 
returns sensible information when called with 
Subscript Ranges and Elements.
vensim_get_data will now return x,y pairs when passed 
the name of a lookup.  You can also use this to fetch 
values from memory when using SyntheSim so as to not 
have to write the results to disk (a slow operation).
DLL Contexts
The Vensim DLL is now available in a configuration 
that allows for multiple context definitions.  This is 
very useful to support a server environment in which 
multiple models may need to be open or multiple copies 
of a given model may need to be open for different 
users.  Each context can be executed independently 
using different threads so that actions may be 
performed in one context while another may be busy 
performing a simulation.  See the Vensim DSS Referense 
Supplement for details.

Vensim 5.6a Readme Notes	Page 3/30

    
3
    
