ReleaseNotes:Planimate 5.36 Release Notes

From Planimate Knowledge Base
Jump to: navigation, search


  • NEW Using anti-aliased line drawing in:
    - graph lines (column overlay, log driven, train graph, gantt)
    - flow editor lines
    - track/spatial link lines
  • NEW Log Driven Graph views have a new Graph Option "Overlay Starts At 0 Not 1".
    When set, the graph view expects overlay numbering to be 0,1,2,3... instead of 1,2,3.4...
  • FIX Update routine editor menu when attributes are pasted along with lines


  • NEW Table import/export dialog have new "Comma Separated" option which reads/writes in CSV format
  • CHANGE Recent rework caused models not to be interruptable with the keyboard during animation of an item on a flow line (0 time animation). This was a side effect of using a filter to prevent undesirable events being processed as an item is animating.
    The ESCAPE key can now be used to interrupt an animating item in this situation.
  • CHANGE Removed the model building tutorial from the help menu. This will be migrated to the wiki.
  • CHANGE The more heavily wiki-text formatted options in the help menu only appear in "advanced editing" mode.
    (the text these generate is used to update the online Planimate wiki).


  • FIX s.KeyTime was not accounting for correct time offset


  • NEW System attributes

s.PBA returns non zero if running as a PBA s.KeyDate creation time for active keyfile. Useful for externally keyed PBA s.KeySerial serial # for active keyfile s.KeyName string attribute returns keyfile user name s.KeyOrg string attribute returns keyfile organisation

  • NEW Planimate about box (edit and PBA) updated


  • FIX Cleanups to RemovePortal() (track/link/pipe instances)
  • FIX The LoadModel() routine operation now sets the stop reason to "Platform Required". This is important for models that process the s.LastRunStopReason system attribute as the model is sent the model closing broadcast in a restart just before it is unloaded. It was previously setting an error stop reason which caused models which sense this to report an error before the reload.
  • CHANGE The "_Panel Repainted" broadcast has been improved.
    The broacast is no longer automatically sent. The modeller must enable it using s.EnableRepaintBC=1 This is an auto-resetting system attribute so the next panel shown (ForceRepaintPanel, ForceRepaint or switching to panel or opening popup) must be the one you want the receive the broadcast for.
    PL now does the first repaint of a model at run start just before sending the model loaded and run start broadcasts but after sending the preinit broadcasts.

  • CHANGE The _panelrepainted broadcast is now sent with properties to process silently.
  • NEW loadpl 2.2 released, now support cross-thread load/reload of model and passing optional s.LoadDataFilePath setting.
    Internal cleanups: load/load complete signal, PL_LoadModel API, various renames for code clarity. (Background Broadcasts now Silent Broadcasts)


  • NEW Broadcast "_TrainTailExit" is sent to a location on a track network when the tail of a train has just cleared a road leading to that location. It includes attributes _id, _section and _road.

  • NEW Broadcast "_TrainTailExitSrv" is sent to a location on a track network when the tail of a train has just cleared a multiserver inside the location. It includes attributes _id and _object. Note that _object may be zero if the multi-server does not a model object label, this may be OK if the location knows the multiserver the item is in by other means.
    Note that unlike for roads, no mechanisms keep a hold on a multi-server when it is occupied by a train tail. The modeller must arrange for this if required.
  • FIX Fix handling of multiservers and train length


  • REMOVE Removed the configuration and saving of DataSet1 (old scenario files). The editing and menu options are removed.
    The Label List _Model_DataSets is no longer present in PL.
    Older models will not load if they still reference this label list. They should have references removed in a previous version of PL.
    LoadDataSet continues to be supported for the time being.
  • NEW Gantt Views can now log the co-ordinates of the blocks visible to the table that drives them.
    This is achieved by setting the "Co-ord Start Column" (basic text, not a reference) to the name of the column where the co-ordinate data starts. The data is written as as 4 columns from this column in panel co-ordinates as left-x, bottom-y, right-x and top-y.
    The co-ordinates for a completed block are placed in the row which starts the block. The 4 points on other rows are set to -1.
    If the start column name doesn't match any columns or there are not enough columns, the name is ignored.
    The co-ordinates are only set on "redraw" of the gantt view, not as data is added.
    Note that the table is updated without redraw as its not intended that the end user see the co-ordinates. Do not expect to see changed co-ordinates without an explicit redraw of the table view.
  • NEW s.LoadFileNamePath can now be set using a $= operation. This will be useful when a PBA restarts itself, enabling it to signal to itself a different dataset to load.
  • NEW Table Driven (Index) mode entries have the option to cycle around instead of stopping when they reach the end of the table.
    This is enabled with the "Repeat Last Interval and Cycle Around" option.
    To avoid the final event and first event occuring at the same time, the time interval between the second-to-last and last event in the table is repeated before the cycle-around occurs. Hence this option makes most sense when the events in the table are at a fixed period and the first event occurs at time 0.
    An example where this is useful is in an hourly profile where the table contains 24 rows with times 0:00, 1:00, 2.00 ... 22:00 23:00.
  • NEW Experimental RemovePortal() routine operation
  • CHANGE Increased maximum screen length of queue and dispatcher to 32
  • FIX Socket allocation code (broken in 5.36)
  • NEW System broadcast "_Panel Repainted" is sent to a panel when its contents have just been redrawn. This can be due to the panel being shown, a force repaint, the panel redrawing due to transparent views updating or change in window size.


  • NEW Pipes can now have parts of them hidden. The new option "Hide Next Segment" on the Bend Point context menu toggles whether the segment following the bend point is hidden at runtime. The hide applies up to the next bend point.
    This property can be read/set in bendpoint tables using a column called "Hide" or "_hide". If a map is managing a bendpoint table and hidden segments are being used, the bendpoint table must include this column.

  • NEW Gantt and train graph views have option for "No Title"
  • NEW System attribute "s.AdvancingToTime"
    This is set if an advance to time is currently in progress OR Planimate is running in batch mode (without a UI)


  • NEW PL 32 and 64 bit versions now ship in the one ZIP file
  • NEW Pipe's in "Transfer Table Row" mode now handle additional blending columns in a different way. Instead of specifying an absolute range of columns for blending data, you now specify the number of additional blending columns and they start in the columns to the right of the source and target.
    The default additional column count is 0 (ie: not active). The value is specified as a reference which is read on run start, hence a portal attribute can be used if it needs to be changed.
    It is OK for the additional column count to be greater than the number of columns in the source table, PL will use what columns are actually available.
    PL will stop with an error if the target table does not have enough columns to accomodate all the columns that are used in the source. This protects against mismatched blend data transfer.
  • NEW When s.OwningPortalLocation is used in a string expression it now resolves to the object name of the owning portal
  • FIX Paint button mouse down state was not activating during run (it was being overridden by the button state control attribute). This has been a problem since pre-5.32


This version has undergone internal rewrites, enhancement and cleanups. Users of the EXE should not notice any change between this release and 5.35r (model versions are same and compatible). The new developments enable an application to embed and run multiple Planimate models (via DLLs) simultaneously, with arbitrary control over loading, model data, runs and advance-to-time of each loaded PL instance.

A key feature is that multiple running models will use multiple cores on modern processors. The changes have been carefully reviewed, nonetheless please look out and immediately report any issues with unresponsive UIs or models that do not pause/continue as expected or as in 5.35r. The PL DLL API has changed and a new version of the "LoadPL" C++ PL DLL container sample is available on request.

The dotNET wrapper is due to be updated to the new API. API details will be placed at

  • FIX Pause menu appearing right after an item click popup is dismissed with a click. This occured when the "clicks during simulation" option was enabled and an item was clicked during simulation.
  • NOTES (internal change notes
  • pause check during animation in PBA dispatches win events
  • PL DLL no longer auto-runs model upon startup
  • PL & toolkit init code cleanups
  • after set AdvanceToTime, now trigger a redraw which performs test for activating Advance Time dialog so its safe
  • DoUserCommand added lparam
  • new ID regions for toolkit/PL commands
  • Pause timer thread cleanup.
  • Boosted tick speed when a DLL
  • planidll api at V2