- AnyLogic 8.9.3 — Nov 20, 2024
- AnyLogic 8.9.2 — Oct 9, 2024
- AnyLogic 8.9.1 — Aug 6, 2024
- AnyLogic 8.9.0 — Apr 18, 2024
- AnyLogic 8.8.6 — Dec 18, 2023
- AnyLogic 8.8.5 — Nov 2, 2023
- AnyLogic 8.8.4 — Jul 13, 2023
- AnyLogic 8.8.3 — Apr 28, 2023
- AnyLogic 8.8.2 — Mar 22, 2023
- AnyLogic 8.8.1 — Oct 27, 2022
- AnyLogic 8.8.0 — Aug 9, 2022
- AnyLogic 8.7.12 — May 25, 2022
- AnyLogic 8.7.11 — Apr 11, 2022
- AnyLogic 8.7.10 — Feb 9, 2022
- AnyLogic 8.7.9 — Dec 12, 2021
- AnyLogic 8.7.8 — Nov 15, 2021
- AnyLogic 8.7.7 — Sep 27, 2021
- AnyLogic 8.7.6 — Jul 21, 2021
- AnyLogic 8.7.5 — Jun 9, 2021
- AnyLogic 8.7.4 — Apr 29, 2021
- AnyLogic 8.7.3 — Mar 21, 2021
- AnyLogic 8.7.2 — Dec 24, 2020
- AnyLogic 8.7.1 — Dec 14, 2020
- AnyLogic 8.7 — Nov 18, 2020
- AnyLogic 8.6 — Aug 13, 2020
- AnyLogic 8.5.1–8.5.2 — Jan 23, 2020
- AnyLogic 8.5 — Aug 20, 2019
- AnyLogic 8.4 — Feb 28, 2019
- AnyLogic 8.3 — Jun 15, 2018
- AnyLogic 8 — Mar 3, 2017
- AnyLogic 7.3 — Feb 2, 2016
- AnyLogic 7.2 — Jul 29, 2015
- AnyLogic 7.1 — Oct 16, 2014
Major features
3D: Omniverse integration
- NVIDIA Omniverse integration provides high-quality 3D rendering for AnyLogic models through a live, real-time workflow. Your model connects directly to an Omniverse session, dynamically updating the 3D scene to reflect visual changes in agents, shapes, and markups. The new AnyLogic Omniverse connector element provides data transfer to Omniverse for synchronized scene updates.
Minor features and improvements
-
Material Handling Library:
- It is now possible to control the crane using API functions without adding a crane-related flowchart block to the model.
-
Rail Library:
- It is now possible to modify the collection of train reservations made on the railway track using the addToReservations() and removeFromReservations() functions.
-
Road Traffic library:
-
The Parking lot markup element now supports diagonal parking.
The Forced exit on timeout option has also been added to control the priority of a car leaving the parking lot compared to the car moving on the road. When the timeout expires, the car can leave its space regardless of the cars moving on the road.
The getParkingSpaceIndex() function has been added to get an index within the parking lot for the particular car parked in it.
It is now possible to set more than 100 parking spaces. - For the CarMoveTo block, the parking space selection policy has been added to specify a range of parking spaces or a specific space within a single parking lot where the car will stop at the end of its movement.
-
The Parking lot markup element now supports diagonal parking.
-
Model export:
- AnyLogic now automatically selects resource files to upload with the model to AnyLogic Cloud.
-
Graphical editor
- Pasting flowchart blocks from the clipboard after copying or cutting now inserts them at the cursor position.
-
Engine:
- The Rotation property and dynamic values for the x, y, z coordinates of the agent dropped on the canvas are no longer available for the agent without a presentation.
Bugfixes
- Animation: When the model was run at high speed, some charts were not drawn.
- Application: Moving a flowchart block while holding down the Shift key did not disconnect the block from the flowchart.
- Application: The border of the node could be moved through the attractor, resulting in the attractor being outside the node.
- Application: When copying a node with attractors, the attractors of the copy were displaced.
- Built-in Database: The Autoupdate imported tables on model startup option caused an exception if an external database was used to import data into the built-in database.
- Code Generation: Agent: The randomAgentInside() function of the agent could throw an exception if its space was occupied by another agent.
- Code Completion, Agent: Code completion did not work in the dynamic text field of the Rotation property.
- Material Handling Library: Conveyor spur: Agents moving on the conveyor spur had incorrect z-coordinate in some cases.
- Material Handling Library: ConveyorStation: Station could stop processing agents over the time.
- Material Handling Library: The Transporter agent type created by the wizard and called from a link in the TransporterFleet block caused an exception.
- Material Handling Library: OverheadCrane: The seize of an overhead crane with multiple bridges could cause an exception if the agent with higher priority preempted the current task of the bridge.
- Material Handling Library, Process Modeling Library: Path direction was not handled correctly in the getDistance() function of networks.
Major features
Material Handling library
-
Now you can simulate robots in your industrial models. Two new elements added: the Robot space markup shape and the ProcessByRobot block in Material Handling library. The block defines the operation logic (it can be either processing or transportation).
A new how-to model, ProcessByRobot, is included: Demo model: ProcessByRobot Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).
Application
-
To eliminate inconsistencies and improve usability, the behavior of embedded agents and their presentations are now unified. If an agent exists in space, you now define the location of its presentation (as well as its rotation) in the agent properties. If the agent does not exist in space (for instance, it defines a custom flowchart block), it should not have any movement-related functionality. Therefore, each moving agent should be included in the space (see the Space and network properties section of its upper-level agent).
The term environment has been removed from all user-accessible areas of the product, including the API, and substituted with space.
Minor features and improvements
-
Application:
- It is now always possible to save the model in the new ALPX format, which organizes different parts of the model as a set of files, without having to enable the feature first.
- The inspect window now displays the full text returned by the agent’s toString() function.
-
Engine:
- It is no longer possible to use the space-related API for the agent that is not located in the space (that is, used as a flowchart block).
- All environment-related methods are now deprecated. Use setSpace() and getSpaceType() functions instead of getEnvironment() and getEnvironmentSpaceType().
- New API for agent communication: sendToAllAgentsInside(), sendToRandomAgentInside().
- The following agent functions are now deprecated: receive(), deliver(), deliverToAllAgentsInside(), deliverToRandomAgentInside(), deliverToAllConnected(), deliverToRandomConnected(), deliverToAllNeighbors(), deliverToRandomNeighbor().
-
Graphical editor:
- Attractors inside Rectangular and Polygonal nodes now have absolute coordinates.
-
Library development:
- The Flowchart block option (available in the Library developer mode) is now automatically selected for the custom flowchart blocks created from the converted flowchart part.
Bugfixes
- Pedestrian Library: Sloped nodes were positioned incorrectly in 3D view.
- Rail Library: The Route should not contain property of the TrainMoveTo block was calculated twice.
- Road Traffic Library: The car did not consider the Z-coordinate of the level where it was moving.
- Road Traffic Library: The car did not consider the Z-coordinate of the intersection where it was moving.
- Animation: A chart did not display the dataset at runtime if another chart was displaying that dataset.
- Application: When pausing the model, the camera could lose its position and the 3D view could automatically return to the default view.
- Application: The text editor fields in the properties view could collapse or become unresponsive in some cases.
- Database: An error could occur if a model contained a large Excel file.
- GIS: An error could occur if a model contained an Excel file element and a GIS map.
- Property View: The empty Element Class property in the Collection element could cause the AnyLogic application to hang.
Material Handling Library
- The Downtime block(s) property has been added to the Conveyor, Station, Jib crane, and Overhead crane markup elements to easily set failures and planned maintenance.
- Transporter: The move() function is added to directly control the movement of the transporter without using a flowchart block.
- TransporterFleet: A new On destination reached callback have been added.
- The On failure and On repair actions have been removed from the Material Handling library markup elements.
Engine
- The Database connectivity element and the Import Database Tables wizard now support seamless connection to Oracle, PostGRE, MySQL, and MariaDB databases.
- Apache POI library have been updated, which may have impact on models that have the Excel integration. Cell type constants are now represented by the CellType enumeration instead of the int type.
Rail library
- Position on track: A new Offset from track start property has been added.
Built-in database
- If the imported Excel file contains a column with data of different types, it will be imported as a String type.
- Import of binary Excel files (XLSB) is no longer supported.
Example Models
- New how-to models: Create Conveyor Network by Code, Create Road Network by Code, Split and Combine, Enter and Exit, Service Queue Selection Policies, Discrete Pollution Propagation, Moving Transporter Without Flowchart Block.
- New how-to models that demonstrate the Pypeline library: Python from Experiment Screen, Interconnected Call Centers (Web App), Initializing and Exporting with JSON. The following models have been deleted: Demo - Passing Data Types, Demo - Passing Data Types 2 (JSON), Demo - Running Python Files, Traveling salesman, Simple Hospital (AI Testbed), Lorenz Weather Model - Pypeline.
Bugfixes
Application
- Fixed bug: When pausing the model, the current 3D camera view could automatically return to the default view.
Built-in Database
- Fixed bug: An Access database table was not displayed in the list in the Import Database Tables wizard if its name matched a keyword.
- Fixed bug: Importing and exporting data to an Excel list with a space character in its name caused an exception.
- Fixed bug: Importing tables from a password-protected database caused an exception.
- Fixed bug: It was impossible to import the data from an Excel spreadsheet containing cells with Boolean values.
- Fixed bug: The Database type drop-down list was not displayed in the Import Database Tables wizard until the database file was selected on Mac OS.
- Fixed bug: The File field in the Import Database Tables wizard did not display the name of the selected database file.
- Fixed bug: The exportToExternalDB() and importFromExternalDB() functions caused an exception when an Oracle database was used as an external database.
- Fixed bug: The exportToExternalDB() function did not work in some cases when Microsoft Access database was selected as the external database.
- Fixed bug: Searching for part of the name of the Excel file could cause an exception.
- Fixed bug: Database connectivity elements (Query, Insert, Update) caused exceptions when working with Oracle database.
Dialogs and Wizards
- Fixed bug: Opening the Choose probability distribution wizard could cause an exception if the previous model that used this wizard was closed.
Version Control
- Fixed bug: University Researcher version: Git operations with the Store in Secure Store option enabled caused a No secure storage modules found error.
- Fixed bug: Subsequent cloning of GIT repository configured with SSH didn’t work after restarting AnyLogic.
Application
- AnyLogic is now supported on the Mac ARM architecture.
- AnyLogic now supports Java 17.
- AnyLogic now supports Git.
- The AnyLogic Professional evaluation version is no longer supported. Instead, the limitations of AnyLogic PLE have been relaxed to provide more functionality in trial mode.
- You can now find potential memory leaks in your model with the new memory dump analyzer.
-
Minor improvements:
- It is now possible to get the list of references (for example, the call hierarchy) for the selected code element in the Java classes.
- Outline view for a Java class is now supported in Java classes.
- The Java class editor now supports Ctrl+click navigation.
- When hovering over a variable in the code box, the Java class editor now displays pop-up windows with variable type information.
- When quitting AnyLogic, it is now possible to select multiple models for saving in a special dialog.
- Agent population: in the Condition and Expression properties within the Statistics section, the name of the local variable has been changed from item to agent.
- The German and Italian localizations that are not supported have been removed from the product.
Model and library export
- AnyLogic now supports the new ALPX model format, a group of files containing different parts of the model.
Process Modeling library
- A new function, getDistanceTravelled(), is added. It returns the distance traveled by the agent.
Code generation
- Simultaneous changes to multiple code fields through refactoring, renaming, or formatting commands are faster.
Bugfixes
Material Handling library
- Fixed bug: On some versions of Linux, adding markup elements could stall the graphical editor.
- Fixed bug: Canceling an agent in the Convey block could cause errors in case the agent was redirected to the same Convey block.
Application
- Fixed bug: Linux: AnyLogic could not close properly after requesting a license. As a result, it was impossible to reopen AnyLogic.
Engine
- Fixed bug: The total distance traveled by an agent was incorrectly logged in the internal database if the agent was moved to the same point where it was already located.
Model and library export
- Fixed bug: If the versions of the internal AnyLogic Java and the user’s installed Java were different, Javadoc was not exported when creating a custom library.
Property view
- Fixed bug: MacOS: Leaving the Parameter Types menu due to a timeout caused an event loop exception.
Engine
-
Custom distribution properties are completely rebuilt.
Make sure your simulation results are accurate and reliable by checking the Preview section in the properties of any custom distributions you’ve created, and reviewing the models using those distributions. - The Reinforcement Learning experiment can now be called from Python scripts using the Alpyne library. Microsoft Bonsai is no longer supported.
- A new metal texture has been added to the texture palette.
Bugfixes
Application
- Fixed bug: 3D figures were not rendered in some cases.
- Fixed bug: The executeExpression() function caused an unnecessary warning.
Code completion
- Fixed bug: Clicking the action field caused the event loop exception.
- Fixed bug: Code completion in an empty number field did not work when a user selected an option with the mouse.
- Fixed bug: Renaming model elements with Ctrl + Enter did not work in some cases.
Miscellaneous
- Fixed bug: An Option List element used as a database column type caused an exception.
- Fixed bug: Trying to change the dimension properties of the transporter or material item agent types caused an event loop exception.
- Fixed bug: Importing a Java class by code discarded all the code in that code field.
- Improved performance of the AnyLogic IDE.
- The code completion assistant for adding new elements to large models appears faster.
- Improved performance and responsiveness of navigation and panning in the graphical editor for models containing large networks.
- Improved agent movement performance in large networks.
- We have significantly reduced the possibility of the 64k Java runtime exception occurring in models containing large networks created from elements of the Process Modeling and Material Handling libraries, as well as road and rail networks and walls.
- Additional information is now displayed when the mouse pointer is moved over charts and plots.
- Model animation zooms in and out more smoothly.
- A new GIS search server now performs searches in GIS maps.
- Improved performance of the route search algorithm for path-guided transporters.
- In certain cases, the order of triggering actions for leading/trailing edge enter/exit may change when the station borders align with another station, or when a Position on conveyor markup element is present at the station border.
- 3D shapes can now be used as icons and for block animation in custom libraries.
Code generation
- Fixed bug: In the group of replicated plots, only one was automatically updated at runtime.
- Fixed bug: index local variable did not work for replicated plots, time plots, time stack charts, and time color charts.
- Fixed bug: Javadoc and code completion did not work for third-party libraries.
Material Handling Library
- Fixed bug: The Incorrect distance between conveyor items error was thrown unexpectedly in some models with conveyor networks.
- Fixed bug: Conveyor network: Items entering the main conveyor line from multiple conveyor spurs could arrive in the wrong order.
Engine
- Fixed bug: The auto-generated 2D images of 3D objects now have the .png extension instead of .png_xjal.
Experiments
- Fixed bug: The genetic optimization experiment did not throw an exception in cases where the specified number of iterations was odd.
Export of Model / Library
- Fixed bug: Execution logs were exported with the model database to AnyLogic Cloud.
-
A new markup element, Elevator, and a new block, PedElevator, are added to improve the simulation of pedestrian flows in multi-level buildings.
- Elevator visually defines the elevator and its properties in a pedestrian simulation model.
- PedElevator simulates how pedestrians are transported by an elevator.
- A number of example models demonstrating the new functionality are available: Pedestrian Elevator, Elevator Connecting Floors Defined by Different Agents, Elevator Manual Control, Elevator Failure.
-
A new Genetic engine is now available for the optimization experiments.
- The int and design types of optimization parameters are no longer supported in optimization experiments.
- The validation for the number of iterations, as well as minimum, maximum, and step values for parameters, was added.
- A new experiment demonstrating the new genetic optimization engine is added to the Optimization in Custom Experiment model.
Process Modeling Library
- Fixed bug: When moving through the network, the agent could resume its movement incorrectly after the pause.
Rail Library
- Fixed bug: TrainMoveTo: The Limit distance to move property was ignored in case a train was paused by the pauseTrain() function.
- Fixed bug: TrainMoveTo: The getDistanceToTarget() function of a train returned invalid result if the Limit distance to move property was used.
Built-in database
- Fixed bug: In case database files were missed or corrupted, the error appeared instead of a database connection check.
- Fixed bug: Writing logs in the built-in database could cause AnyLogic to enter the state when it was not responding.
Graphical editor
- Fixed bug: The 2D presentation of 3D shapes was not shown during design time on macOS.
Engine
- Fixed bug: The model’s animation froze, if the model window was inactive (for example, it was hidden by other applications) for a few minutes.
- Fixed bug: An error appeared, if the exported model was integrated into the Spring JAR file.
GIS
- Fixed bug: The agent could not cross the international date line in case its movement was programmatically set along the geometrical straight line.
Application
- Fixed bug: Custom Java classes could not be opened in the built-in Java editor after an AnyLogic update.
Process Modeling Library
- Fixed bug: Source: When selected, the Set agents parameters from DB option does not enable the Agent parameters mapping table.
Application
- Fixed bug: A right mouse button click on the model’s log in the Projects view causes ClassCastException.
- Fixed bug: The agent type creation wizard resets the agent’s name to the default one.
- Fixed bug: The model cannot be saved with the new package name in case the model refers to its database in a code field.
- Fixed bug: The model progress indicators located in the Developer panel do not work during multi-run experiments.
Built-in Database
- Fixed bug: Data import from Excel files may cause an exception in some cases.
Preferences
- Fixed bug: Enabling the Library developer mode option has no effect after AnyLogic restart.
- An interaction between storage and transporters is improved for the case when multiple transporters store or retrieve agents from the same bay.
- Free space transporters can resolve deadlocks automatically now.
- The validation for the station location on the conveyor is added.
- The behavior of the graphical editor is improved for cases when the diameter of the turn station or turntable is changed by a user manually (with a handle).
- The look of the wizard for creating databases from Excel files was improved for small monitors.
- When creating a new rail car, car, or another agent, the list of appropriate 3D figures that contain default animation is now expanded.
- Apache POI library is imported by default now. Its functionality is available regardless of whether the Excel File element is added or not.
- Starting from this version, you won’t be able to open models created in AnyLogic 7 or older versions. To work with such model, open it in AnyLogic 8–8.8.1, then save it.
Engine
- Fixed bug: The Schedule element does not support the 12:00 AM (0:00) time point on Sunday if the duration type is set to Week.
Material Handling Library
- Fixed bug: Material items may become stuck at a station in some cases.
- Fixed bug: Transporters may become stuck if the layout contains a long and narrow passage.
Rail Library
- Fixed bug: An update of the car’s orientation during coupling and decoupling can cause an unexpected "Route not found exception" error.
Export of Model / Library
- Fixed bug: AnyLogic cannot upload the model to AnyLogic Cloud, requesting a Cloud update, even though the newest version of Cloud is used.
- Fixed bug: macOS: The standalone Java application uses the default browser for execution instead of Chromium.
GIS
- Fixed bug: In some cases, the GIS map view unexpectedly returns to the initial state.
- Fixed bug: Missing OSM tiles.
- Fixed bug: The scale of the GIS map at runtime differs from the scale set at design time.
Graphical Editor
- Fixed bug: Walls may become invisible in some cases.
Application
- Fixed bug: The list of opened models is not restored in case AnyLogic was closed improperly.
- Fixed bug: macOS: Names of elements are not shown in case the system language is Hebrew.
- Fixed bug: Opening a model with the package name identical to that of the currently running model causes the Unable to open the model error even if the running model was closed.
- The Storage markup element now supports the FIFO and LIFO rack types.
- Task preemption properties are added to the Station markup element.
- The Turn Station and Turntable conveyor elements now have the Diameter property.
- Redesigned the CAD converter dialog.
- The hierarchical view (folders, subfolders) is implemented for various types of model resources.
Material Handling Library
- Fixed bug: Conveyor spur: The priority logic works incorrectly, allowing items on the conveyor that have a lower priority to squeeze between items with a higher priority.
- Fixed bug: Path-guided transporters may re-register in the restricted area, causing an internal library error.
- Fixed bug: The overhead crane doesn’t handle an agent if the coordinates of this agent coincide with at least one coordinate of the initial crane bridge position.
Pedestrian Library
- Fixed bug: PedChangeLevel block: The pedestrian has incorrect coordinates when moving to the target line located on the same level.
Process Modeling Library
- Fixed bug: Wait block: A call of the free(null) function releases all the agents in the block instead of throwing an error.
Application
- Fixed bug: The dialogs requesting action from a user could appear hidden behind the splash screen or other windows during the application startup.
Application, Dialogs and Wizards
- Fixed bug: A request to the support team can’t be sent on macOS if it contains a model as an attachment.
Converter to Markup
- Fixed bug: CAD converter creates walls with zero length, making the model run impossible to complete.
Example Models
- Fixed bug: Issues with the Probability Distribution model.
- AnyLogic now supports Java 11.
Material Handling Library
- Fixed bug: A material item can invoke an action at a Position on conveyor, even though this item moves away from the conveyor where this position is located.
- Fixed bug: A material item does not leave a reversible conveyor, if it is the last conveyor in this item’s route, but not the last in the network.
- Fixed bug: In some cases, a material item may stuck at the conveyor's spur which leads to the reversible conveyor.
- Fixed bug: In the Retrieve block, the Resource choice condition property is not working.
- Fixed bug: Sometimes, a conveyor agent counter still takes an agent into account even after this agent has already left the conveyor.
- Fixed bug: Sometimes, the speed value of an overhead crane cannot be updated dynamically.
- Fixed bug: The Store block and store() function can put an item in the cell that was previously reserved by the setReservation() function.
- Fixed bug: The deactivated storage cells are not counted as free cells.
- Fixed bug: Sometimes, a phantom (non-existent) agent may appear in the conveyor network.
Process Modeling Library
- Resource tasks priorities were changed: a resource unit now will return to the interrupted task if there is no higher priority task in the queue.
- Fixed bug: The resource unit does not return to the agent it services after the task was resumed, if the resource unit was interrupted underway to the agent.
- Fixed bug: The MoveTo block working in the Place to (Jump to) mode can cause memory leaks.
Rail Library
- Fixed bug: Switches are not created for the railways converted from a shapefile.
Application
- The Java editor now supports more hotkeys.
- An ability to reverse the conveyor’s direction.
- Redesigned documentation system.
- Updated Job Shop tutorial.
Material Handling Library
- Fixed bug: Flow from a conveyor connected with a Conveyor Spur markup element may stuck if there is a blocked item on the main conveyor.
- Fixed bug: In some cases, the material item may be blocked at the entrance of a station with the Processing starts when agent enters station option enabled.
- Fixed bug: Low model performance caused by logging.
Process Modeling Library
- Fixed bug: When delivering an agent from a storage, the resource’s speed is identical to the speed of the transported agent.
Rail Library
- Fixed bug: A train moves extremely slow on the track that has just been unblocked by another train.
Engine
- Fixed bug: In the Observed samples mode, a custom distribution may return wrong results.
Example Models
- New how-to models: Reversible Conveyors, Reversible Conveyor Buffer, Item Flow Control on a Reversible Conveyor Spur.
Export of Model / Library
- Fixed bug: Problems occurring upon exporting models having complex dependencies to Cloud.
Licensing / Activation
- Fixed bug: Proxy settings working incorrectly in Activation Wizard sometimes.
Process Modeling Library
- Fixed bug: The agent loses info about the current network node while moved by the MoveTo block.
- Fixed bug: The straight movement mode of the MoveTo block doesn't work.
Application
- Fixed bug: Impossible to change the address of the Private Cloud instance if the address of the previous instance is unavailable.
Engine
- Fixed bug: Issues with the parameter variation experiment cause numerical precision and rounding errors.
Export of Model / Library
- Fixed bug: In AnyLogic Cloud, models are unable to export from the AnyLogic database to the Excel file.
GIS
- Fixed bug: Agents start to move straight after completing half of the route.
Internationalization & localization
- The German locale is removed from AnyLogic and AnyLogic Installer.
Installation
- The SWT libraries were updated for better experience on macOS.
Material Handling Library
- Fixed bug: Incorrect waypoint distance error when agent enters conveyor station.
- Fixed bug: Transporters don't recognize overhead crane as an obstacle though Is obstacle property is active.
- Fixed bug: Shortest path policy may choose not the closest transporter in case when target is inside an obstacle.
- Fixed bug: Transporter may stop next to level gate if the level gate surrounded by walls or restricted area.
- Fixed bug: Transporter stops next to lift when the lift is surrounded by walls or restricted area.
- Fixed bug: Location of serviced agent takes too long to update causing a resource to move to the wrong destination.
- Fixed bug: Seizing of transporter causes an exception if the pickup location is Path.
- Fixed bug: Storage: Incorrect error message if agent goes to deactivated cell.
- Fixed bug: Failure to load the model's snapshot.
Pedestrian Library
- Fixed bug: Issues with throughput restrictions in areas.
- Fixed bug: Pedestrian density map contains negative values.
- Fixed bug: Pedestrians crowd on Target Line in models with Ped Area Descriptor block.
- Fixed bug: Pedestrians crowd in areas with high density of agents.
Process Modeling Library
- Fixed bug: Model freezes while rescheduling downtime event for idle resource.
- Fixed bug: Move To: Trip time mode applies initial trip time value when suspended agent resumes operation.
- Fixed bug: Statistics is not collected in PML blocks though Force statistics collection property is active.
- Fixed bug: PML Settings: Unchecked Enable statistics by default option causes error when the model is closed.
- Fixed bug: Location of serviced agent takes too long to update causing a resource to move to the wrong destination.
Road Traffic Library
- Fixed bug: Traffic Light: Phase edit field in the Property view does not display all associated stop lines.
Built-in Database
- Fixed bug: Anylogic throws an error when connecting to Excel database.
Export of Model / Library
- Fixed bug: Inconsistent order of dependencies in AnyLogic and exported stand-alone model.
- Fixed bug: Issues with switching from the outdated Private Cloud to Anylogic Public Cloud.
Reinforcement Learning
- Disabled export to Pathmind due to Pathmind dissolution.
Storage space markup element now supports back-to-back rack placement.
Material Handling Library
Added local variable unit to several properties of Retrieve block.
Pedestrian Library
- Replaced "Area" with "Node" in the properties of several library blocks.
- Now you can change the queue color of serpentine queue.
Examples
In the Create GIS Network by Code example model you can learn the basics of creating a custom GIS network programmatically.
Material Handling Library
- Fixed bug: Obstructed placement of storage elements side by side sometimes.
- Fixed bug: Visibility of a transporter that moves on an invisible lift platform.
Model export
Fixed bug: Export model to Cloud wizard throws an error if icon isn't selected.
Application
Fixed bug: Can't delete resource file from the tree if the unused file has been removed.
Engine
Fixed bug: API function differenceInCalendarUnits() throws StackOverflow error.
Now you can use a file to write experiment outputs in AnyLogic Cloud. All types of files are supported, including ZIP archives.
Dialogs and wizards
- Updated structure and localization for Activation Wizard.
- Added translations on splash screens.
Pedestrian Library
- Pedestrians now pass through target lines more accurately.
- Comfortable distance from the walls used in routing calculation now depends on the radius of a pedestrian.
- Decreased reaction time to a pedestrian getting stuck.
Material Handling Library
- RuntimeException during the repair of the lift that broke in the process of dropoff.
- Turntable uses default speed while rotating without an agent.
Fluid Library
- FluidToAgent in Agent per batch mode creates extra agents with incorrect amount and batch type.
Process Modeling Library
- Fixed bug: Runtime exception caused by consequent downtime and end of shift tasks allocations.
Reinforcement Learning
- Fixed bug: Issues with initialization, logging and callback's order.
We introduced Storage: a new markup element to model warehouse space where agents are stored on racks. You can choose the type of racks (so far, selective or drive-in are available with more to come). The storage and retrieval processes can be modeled with Store and Retrieve blocks. There is also an aggregate block Storage System that serves as a single access point to a number of different storages organized in a system.
AnyLogic Documentation
- AnyLogic Cloud: Added information on Cloud subscription and subscription management.
New example models
- In the Slotting Policies in Drive-in Storage example model, you can see how different slotting policies are applied to a storage with drive-in type racks.
Material Handling Library
- A new API function, getConveyingSpeed(), returns the speed with which the conveyor moves the material item.
- The name of the transporter type can't be changed in runtime anymore.
- It is now impossible to connect more than one path to the network port in the graphical editor.
Pedestrian Library
- Improved performance in models that use the Pedestrian Library.
Process Modeling Library
- If a ResourcePool block contains an error in the downtime distribution, the resulting error message now points out the problematic block.
Material Handling Library
- Fixed bug: Transporter control: The number of collision resolution steps was calculated incorrectly.
- Fixed bug: In the models having a non-default scale, crane trolleys could sometimes move at the incorrect height.
Road Traffic Library / Graphical Editor
- Fixed bug: The Road element could be moved to another level upon its modification in the Projects view.
Material Handling Library
- The transporter dispatching policy has been renamed: for example, Shortest path is Shortest path to destination now.
- A new API method, createPort(), creates a network port for the Path and Conveyor markup elements.
- It is now impossible to call the setPairedPort() API method for network ports in runtime.
- The setQuantity() API method can be now called in runtime, allowing to change the value of the Quantity property of Station.
Fluid Library
- The value of the output batch of the MixTank block is now recalculated automatically when a new mix is completed.
- A new API method of Valve, amountBeingDispensed(), retrieves the amount of fluid being dispensed by that valve.
Process Modeling Library
- A geographic location can now be selected as New location of the Unbatch block.
Engine
- CAD converter now supports Select All, Clear All, and other useful actions for the list of layers. Several minor quality-of-life issues have been also addressed.
GIS
- New API methods to create bidirectional and one-way routes on the GIS map.
Internationalization
- Various issues with the Russian and Chinese localizations have been addressed.
AnyLogic Documentation
- AnyLogic Cloud: The Private Cloud section now offers the architecture guide and installer reference.
- New use cases and reference materials were added.
Examples
- In the Mobile Rack System example model, the priorities and preemption policy in the flowchart have been adjusted to avoid issues with transporters being seized concurrently.
- The Rack System with AGV model runtime now offers the 2D presentation view.
- The Create Transporter Network by Code model now contains an example of a network port created programmatically.
Material Handling Library
- Fixed bug: When in the starts when agent enters station processing mode, Station did not count the number of processed items in the value of the Capacity property.
- Fixed bug: Free space-navigating transporters could move through the wall upon exiting a lift.
- Fixed bug: Free space-navigating transporters spun while located at the home or target location.
- Fixed bug: The Concurrent modification exception error could appear in runtime in some models containing transporters when these models were running in the parallel execution mode.
- Fixed bug: In some cases, path-guided transporters were unable to detect other transporters through network ports.
- Fixed bug: The timeInState() API method of the Transporter API returned the current model time for transporters created dynamically.
- Fixed bug: A transporter’s attempt to avoid a collision with another transporter blocked by the third transporter staying ahead could result in a deadlock.
- Fixed bug: If an agent was canceled programmatically from the MoveByCrane block while the crane’s bridge was moving to it, an exception appeared.
- Fixed bug: Sometimes the presence of cranes could cause performance issues with the models.
- Fixed bug: The agent local variable in the On process started and On process finished actions of Station was not referring the first agent in the station if the Processing starts when capacity is full option was active.
Fluid Library
- Fixed bug: Sometimes, the ProcessTank and Tank blocks did not release fluid properly.
Process Modeling Library
- Fixed bug: The Parameter is not specified exception could appear, when a geographic place was selected as the location of the batch in the Batch block properties.
Built-in Database
- Fixed bug: A user was not informed that database columns contained data of different formats.
Engine
- Fixed bug: Sometimes the proxy settings specified for the AnyLogic installation did not affect the connections to AnyLogic resources, for example, AnyLogic Cloud.
- Fixed bug: In the Projects view, the ALP file icon sometimes could appear as modified in cases when new unused files had been added to the model folder, or previously existing unused files had been removed.
Material Handling Library
- Added API methods ignoreCollisions() and ignoreCollisionsFor() for transporters to control the ability of transporters to recognize each other as obstacles.
Engine
- Reinforcement Learning: integration with Pathmind.
- Third-party libraries update.
- User's source code regeneration for models with invalid (for various reasons) code fields.
Installation
- Removed USB dongle driver from distribution for Windows.
Built-in Database
- Added Javadoc for ModelDatabase.
Runtime Animation
- Updated Chromium to the latest version.
AnyLogic Documentation
- Troubleshooting guide for Private Cloud.
- Examples of using native libraries' methods in Java with JNI and JNA.
Process Modeling Library
- Downtime defined by schedule want triggered if the schedule had 'on' value at a model start.
- Exception while opening an inspect window of ResourcePool with units that had downtimes defined by schedule.
- Block is not supported exception when Material Handling Library blocks were used in a resource preparation flowchart.
- Resource preparation flowchart was ignored if it contained Service block.
Pedestrian Library
- Pedestrian couldn't enter or exit a narrow serpentine queue.
- Unreachable target error in some models with small scale.
- Pedestrians can now pass only through space that exceeds 10 cm (according to agent's scale).
- Couldn't create polygon exception in some models with restricted areas.
Material Handling Library
- Improved performance for models with transporters that are rarely used during simulation time.
- Possible memory leak in models with path-guided transporters.
- Path-guided transporter didn't move on path between restricted areas.
- Possible illegal argument exception in models with path-guided transporters that interact with restricted areas.
- Path-guided transporter stopped at network port.
- Path-guided transporters didn't keep distance from other transporters behind a network port.
- Free space transporter had incorrect orientation while moving in lift.
- Agent was unable to leave the port error in Convey block internals.
- Station cannot be added on conveyor that is shorter than default length of station.
- Processing at station on belt conveyor started when agent hadn't reached the beginning of station causing the conveyor block.
- Performance of a model with crane dramatically decreased when model time exceeded twenty years.
Rail Library
- Incorrect rail car orientation after uncoupling in TrainDecouple block.
- Rail network was damaged at scale down.
GIS
- GIS network: some errors of GIS route calculation.
- Length of the route created in design time depended on map route type in runtime.
Dialogs and Wizards
- Create Flowchart Block wizard had unexpected text.
- New Experiment wizard generated incorrect default name for any experiment except Simulation.
Graphical Editor
- Markup elements are half visible in design time.
- Conveyor moves to a different level while being edited in Projects view.
- Pallet rack markup element moves to another level when path is drawn through an aisle of another pallet rack.
Palette
- A link from tooltip with Material Handling Library description should now open the corresponding help article.
Pedestrian Library and Material Handling Library
- The "Sliding window" property value is added to the control time period that gathers data for the density map.
- It is now possible to build a density map based on the mean density value.
Road Traffic Library
- The On car passed action of the Stop Line markup element now has a local variable car.
- It is now possible to count the number of cars at the stop line with the queueSize() API function of the Stop Line markup element.
- It is now possible to gather statistics on the cars passing an intersection with the new API functions of the Road lanes connector and Intersection markup elements: traffic(), countCars(), resetStats().
- It is now possible to access the route data of a car with the getRoute() API function of the Car and the following functions of Route: getRoads(), getIntersections(), getLength().
- It is now possible to retrieve an average speed of a car with the new Car API function: getAverageSpeed().
- It is now possible to get a number of cars on a lane with the new API function of Road: nCarsOnLane().
Process Modeling Library
- It is now possible to define the location of unbatched items for the Unbatch block.
Material Handling Library
- An agent can now go through the ReleaseTransporter block without an error even if it is not served by a transporter.
Application
- Links pointing to Linkedin are replaced with links to StackOverflow.
Dialogs
- The AnyLogic support dialog now checks the attachment size before actually sending the files.
- The attachment size in the AnyLogic support dialog now has the limit of 30 MB - this includes both the model and the attached file.
Pedestrian Library and Material Handling Library
- Fixed bug: Density map data is not discarded near the target line.
- Fixed bug: The hide() API method of density map does nothing when called in the context of the On startup action.
- Fixed bug: The density map attenuates too fast.
- Fixed bug: For transporters, the density map is calculated for all levels instead of the specified one.
Material Handling Library
- Fixed bug: Transporters having the wrong orientation while moving by a lift.
- Fixed bug: Free space transporters do not avoid each other.
- Fixed bug: The "Incorrect event time" error may appear during the overhead crane's movement.
- Fixed bug: The getDistanceTravelled() API function of the transporter returns the wrong result.
- Fixed bug: The in-feed belt conveyor continues to move even though the agent located at its end does not move due to the out-feed conveyor being stopped.
- Fixed bug: The agent blocked with the Hold block can continue its movement on the conveyor.
- Fixed bug: Items stuck on a conveyor if chosen model time units are not seconds.
- Fixed bug: A transporter slows down at the network port.
Pedestrian Library
- Fixed bug: The PedEnter block does not move an agent to specified coordinates provided the agent is already a pedestrian.
- Fixed bug: Upon changing a level, a pedestrian appears on another level for a second.
Process Modeling Library
- Fixed bug: The recalculateResourceChoiceConditions() API function can throw "The given agent doesn't belong to this Seize block" error if multiple Seize blocks are placed consequently.
Fluid Library
- Fixed bug: In a model with a high input rate and time units other than seconds, the amount of fluid is calculated incorrectly.
GIS
- Fixed issues with different APIs used for calculating distance. Now calculations performed with different APIs should give the same result.
- Fixed bug: For a GIS route, Offset (X) can be greater than length (Y).
- Fixed bug: Calling the Agent.moveToInTime() method in the context of the model results in a null pointer exception.
- Fixed bug: Incorrect Z-ordering of shapes on the GIS map.
Engine
- Fixed bug: A dataset created from a system dynamics variable does not update the data automatically.
- Fixed bug: The uniform_discr() distribution returns a wrong value when used with big numbers.
Animation
- Fixed bug: The z-order of the object rendering.
DXF
- Fixed bug: A shift in the position of elements upon completion of the conversion.
Model export
- Fixed bug: Problematic export of models that have the complex external library and resource dependencies on all platforms, affecting both export to Cloud and to the standalone application.
- Fixed bug: The external class folder is not included in the exported model.
- Fixed bug: The order of exported JARs might depend on the operating system and does not correspond to the order specified in the model.
Dialogs:
- The "Contact us" link points to a different URL now.
- The AnyLogic support dialog now checks the attachment size before actually sending the files.
- The attachment size in AnyLogic support dialog now has the limit of 50 MB - this includes both the model and the attached file.
- Fixed bug: Encoding issue affecting how the names of companies are processed by AnyLogic.
Engine
- Fixed bug: animation window could be blank upon model start.
- Fixed bug: animation might hang for a while, added option to turn off Display distant 3D objects with low level of detail (see Tools > Preferences > Runtime).
Application
- Updated Chinese localization.
Help
- Translated the AnyLogic Cloud administrator guide into Russian.
Engine
- Fixed bug: "Transition cannot be resolved to a variable" exception caused after saving model with new name
- Fixed bug: Time Plot does not show time in AM/PM format despite the chosen axis format.
Material Handling Library
- Fixed bug: Agents with the same priorities are handled incorrectly by overhead crane.
- Fixed bug: Error during drawing animation frame while transporter is moved by a lift object.
- Fixed possible bug: Several items can enter in the one cell of fixed-cell conveyor causing "Incorrect distance between conveyor items" error.
Process Modeling Library
- Fixed potential bug: Internal canceling notification for RestrictedAreaStart block in case when agents can't simultaneously enter an opened restricted area due to its capacity.
Application
- Fixed bug: Part of script is not valid for a BAT file of standalone application in case Java is not installed in Program Files folder.
- Fixed bug: AnyLogic crashes while generating preview image with many elements in "Export model to AnyLogic Cloud" wizard.
Runtime animation
- Fixed bug: Wrong time displayed in developer panel after time zone was changed by code.
Material Handling Library
- Transfer table that has incorrect connection to conveyor is specified in the error message.
- Transporter's name is specified in the error message if there is an internal error in calculation of its movement.
Pedestrian Library
- Pedestrian movement near target line is now more accurate.
- PedEnter block: method take() is added in order to facilitate receiving a pedestrian.
- API documentation (javadoc).
Rail Library
- Train API that is called when train exits the rail yard now also considers cars that already left the rail yard.
All libraries
- API documentation (javadoc) for space markup elements.
Graphical Editor
- Zero-length connectors residing in flowchart block's port are automatically deleted.
Application
- Performance of routing graph.
Material Handling Library
Now overhead cranes may have multiple bridges. This crane type by default operates in automatic mode, i.e. defines the bridges movement order by itself, but you can also control bridges manually with the help of extended API; experienced users might find this approach particularly useful.
You can model complex processes of agents seizing and releasing a crane with the help of new SeizeCrane and ReleaseCrane blocks.
Pedestrian Library
Now you can use nodes to create areas with access and speed restrictions for pedestrians. For example, you may need to model a supermarket where anti-epidemic measures limit client's throughput or evacuation process, where you may want to limit access to a hazardous area or open access to emergency exits.
Pedestrians are now able to observe social distance. This feature will also help you to model anti-epidemic measures.
Pedestrians' routing algorithm has been improved.
Process Modeling Library
It is now possible to recalculate task priority for agent while is in the Seize block.
Graphical editor
AnyLogic now supports conversion of 2D-blueprints from CAD files to walls. The embedded converter automatically recognizes the blueprint's details and the user only needs to select the elements they want to convert into walls. You can import blueprints in .dxf format (now all versions supported) and .dwg format.
Animation
Improved performance of model runtime animation (both 2D and 3D).
Experiments
Reinforcement Learning experiment that allows to define the training of a Learning Agent using simulation model. Export to Microsoft Bonsai reinforcement learning platform.
New example models
Demo model: Crane System with Multiple Bridges Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: SeizeCrane and ReleaseCrane Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Area with Restrictions for Pedestrians Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Engine
- Fixed bug: GIS: Route provider didn't throw error if route was not found.
- Fixed bug: GIS: getDistanceByRoute() might return different results (before/after saving cache).
- Fixed bug: ModelDatabase.exportToExternalDB() didn't work if model was run from custom experiment.
- Fixed bug: Error that might occur when populating discrete space.
- Fixed bug: Database: exportToExternalDB() might throw "incorrect syntax near '0'" error.
Material Handling library
- Fixed bug: Incorrect distance between conveyor items passing through conveyor spur.
- Fixed bug: Possible "Incorrect angle" error when using transfer table.
- Fixed bug: Memory leak in multi-run experiments with transporters.
- Fixed bug: Loading time in MoveByCrane block might be incorrectly calculated.
Process Modeling Library
- Fixed bug: Seize: option Seize units one by one might throw error in case of alternative resource sets.
- Fixed bug: Possible error "ResourceUnitEndOfShiftTask cannot be cast to ResourceUnitEntityServiceSubtask".
- Fixed bug: Possible internal error "Cancelling entity with some path but unknown destination".
Pedestrian Library
- Fixed bug: Pedestrians might appear for a second on a different level while changing it.
- Fixed bug: Potential issues with undesired sources of randomness.
Graphical Editor
- Fixed bug: Shapefile converter to rail markup: Possible "Offset is negative" error.
- Fixed bug: Possible exception when deleting a road connected to an intersection.
- Fixed bug: Converting shapefile to rail markup elements might cause multiple "The length is zero" errors.
- Fixed bug: Possible railway tracks disconnection after network rotation.
- Fixed bug: Positioning problem that might lead to runtime error during switch initialization.
Palette
- Fixed bug: Possible hanging of palette popup under Linux OS.
Application
- Fixed bug: Export of model: NoClassDefFoundError error in exported model with GIS map.
- Fixed bug: Possible AnyLogic shutdown under Linux OS when editing parameters.
Engine
- Improved API documentation (javadoc).
- It is now possible to use "index" in the "Visible" field of a replicated shape.
- API: Setter methods of top-level 'presentation' group (like setX(), setVisible(), …) are no longer available — now they throw a descriptive error message.
Process Modeling Library
- Added API for detailed downtime (resource task) statistics collection.
- ResourcePool: added downtime information to inspect window.
Rail Library
- Position On Track callback actions: it is now possible to set agent type of train argument.
- Added a warning when a train has not reached the target in TrainMoveTo.
Material Handling Library
- Improved API documentation (javadoc).
- Overhead crane: the getInitialPosition() and setInitialPosition() API methods have been renamed to getInitialOffset() and setInitialOffset(), correspondingly. Old methods are deprecated and incompatible with cranes having more than one bridge.
- MoveByCrane: remove() and cancel() API functions now release the crane that was seized.
- Cranes: added API functions to get absolute X, Y, and Z positions of the crane hook.
Pedestrian Library
- Improved API documentation (javadoc).
Graphical editor
- Improved performance of bulk operations like changing colors.
- Improved default design-time view of charts.
- Better appearance of railway switches on complex layouts.
Palette
- Removed the cross button from palettes. Now palettes may be closed by using the "Plus" button located at the bottom of the Palette view.
Runtime Animation
- Updated Chromium to the latest version.
Property View
- Agent parameters mapping table view improved.
Examples
- Example models: Updated How-To models "Using Python in AnyLogic" powered by Pypeline Library (library not included, available for free on GitHub).
- New models: SeizeCrane and ReleaseCrane, Crane System with Multiple Bridges, Areas with Restrictions for Pedestrians, Demo - Passing Data Types 2 (JSON) (for Pypeline library).
Application
Now new models by default don't display the Simulation page when running. See the new option Skip experiment screen and run the model on the Simulation experiment properties.
Material Handling Library
Now transporters – automated guided vehicles (AGV) - can be limited or prohibited from movement in Rectangular and Polygonal nodes. Restrictions can be configured depending on available space, scheduling, throughput, and other conditions. Restricted areas can also be opened and closed manually using the API. When a transporter approaches a restricted area, it can wait or take a detour.
We have improved behavior and vision algorithm for path-guided transporters.
Processing stations on conveyors can now process objects individually, without waiting to be batched together. To enable this, select the Processing starts when agent enters station option in the Station markup element properties.
Rail Library
Switch now has several types:
- All to All connects an unlimited number of tracks and allows trains to travel straight and along obtuse routes of the intersecting tracks
- Single Slip connects four tracks and allows trains to travel straight ahead as well as along the obtuse angle formed by the junction involving the switching track
- Double Slip connects four tracks and allows trains to travel straight ahead or onto obtuse intersecting tracks
Now, as new trains are placed in the network, they may occupy multiple tracks (removed the previous requirement for the created cars to be fully on one track).
Manual blocking of tracks is another new feature that can be used when a track is out of order or busy. If the path of a train is blocked, the train can dynamically calculate a detour or stop before the blocked track. Building the shortest route including blocked paths can now be done via the Rail Settings block. We also added new Track API: block(), unblock(), isBlocked(), etc.
Now, using the API, you can check the availability of tracks and reserve them for approaching trains. If another train approaches a reserved track, it will stop and wait until the track is clear. We have introduced new functions of Track: reserveFor(..), reservations(), cancelReservation(), isAvailableFor(..).
Process Modeling Library
ResourcePool: It is now possible to select the next request from the request pool for a resource unit via the Customize request choice property.
Downtime: It is now possible to specify resources that perform maintenance/failure/etc. processing.
Internationalization
Major update of Spanish translations.
New example models
Demo model: Areas with Limited Access for Transporters Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Level Junction Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Blocking Railway Tracks Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Railway Track Reservation Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Engine
- Removed Simultaneous events selection mode from Experiment properties, the default is LIFO now. All the previously used alternative modes are converted to the Engine API calls.
- Histogram now shows the percentage instead of fractions.
- Improved performance of randomFrom(population).
- Improved performance and fixed several animation problems with disappearing or not updated agent animations when agents actively move between spaces.
- It is now possible to define value step for Slider control.
- Slider value is now validated (against min/max and step) when changed from code using API.
- Added runtime warnings mechanism using warning() API function - may be useful for library developers.
- Improved animation performance (in case of long frame update time, large invisible populations of agents).
- Animation could hang for a while after stopping and resuming on debug breakpoints at run time.
- Animation performance improvements related to the adaptiveness of the protocol between the model and the animation window.
- Improved animation responsiveness in case of time-consuming model start.
- Improved drawing performance of rail track in case of large scale view.
Material Handling Library
- Jib crane and overhead crane now display warning when original location of an item and its destination are the same.
- TransporterFleet: Delay to resume movement property is added to specify the time transporter needs to wait before it continues movement after complete halt.
- MoveByTransporter: It is now possible to define a place where a transporter should go after it is released.
- Path-guided transporters now use attractors if they are defined in the target node.
- Improved error diagnostic message when path is not found.
- Improved error reporting for transporter movement.
- Smarter deadlock resolution for path-guided transporters in case of collision on the same intersection node.
- Improved error diagnostics of transporters movement calculation issues.
- Improved performance of calculations for idle and processing transporters.
- Improved error diagnostics for the case when an item cannot enter the fixed cell conveyor.
- Improved collision resolution when path-guided transporter state is changed.
- Improved free space routing when traveling through level gates.
- MoveByTransporter, ReleaseTransporter: Return to home location option is renamed to Return to current home location.
- TransporterFleet: It is now possible to set minimal distance to obstacle at runtime for path-guided transporters.
- Added missing tooltips in Properties View of library blocks.
- Overhead crane: added API functions setColor() and setTrolleyColor().
- MoveByTransporter: Added options to define what cancelled transporters should do.
Process Modeling Library
- Downtime: Added isActive(unit) function.
- Delay: Added reduceDelay(agent, dt) function in addition to the existing extendDelay().
- It is possible for a resource unit to select the next request from the request pool.
- Assembler: Added delayTime argument to the On enter delay callback.
Pedestrian Library
- PedWait: it is now possible to define that the whole group should leave waiting area together.
- Pedestrians now use attractors of waiting area, when they are queued in corresponding PedService block.
- PedWait: Added function to free all waiting pedestrians: freeAllWaitingPeds().
- PedWait: methods free(ped) and freeAllWaitingPeds() now also free pedestrians that are waiting for their groups.
Rail Library
- New API methods of Rail Settings to get the shortest path considering blocked and/or reserved tracks: getShortestUnblockedPath(), getShortestAvailablePath().
- Position on Track: New callbacks On train enter, On train exit.
- It is now possible to pause train: API functions of Train: pauseTrain() and resumeTrain().
- Added API function to calculate distance from one train to another: distanceToTrain().
- TrainMoveTo now allows train to start movement even if automatic route can't be completed because of blocked/reserved tracks.
- Improved error diagnostics when train is located on the unavailable track.
- Added Name attribute to track in order to debug the model easily if the network is created by code.
- Improved the way a train leaves the rail network: when the last car leaves the last track.
- Added warning when an agent contains a switch with three tracks with obtuse angles between them.
- Train is now deleted when it reaches the end of the final track in case when options Route and Target are set to Not defined.
Road Traffic Library
- Added description to the library.
Graphical editor
- Small usability improvements.
Built-in database
- Improved error diagnostics and validation.
- Option Use COMPACT for database shutdown renamed to Compact on model close.
- Improved performance when using log: Compact on model close option is now automatically turned on when user enables logging.
Animation
- GIS: Dark semi-transparent frame around GIS map is no longer displayed when tiles are off.
Optimization Experiment
- Updated OptQuest optimizer to the newest version.
Projects View
- Projects View now displays all the nodes, including the automatically created ones.
Installation
- Windows builds now may be installed using patch update mechanism (faster installation).
- Ubuntu 20 LTS support.
Welcome
- Updated link to the AnyLogic Users Group in LinkedIn.
Experiments
- Removed Selection mode for simultaneous events from experiment properties, old models (where applicable) are converted automatically to the use of API calls.
Examples
- Example Models: Added How-To section "Using Python in AnyLogic" powered by Pypeline Library (library not included, available for free on GitHub).
- New models: Areas with Limited Access for Transporters, Level Gate, Bidirectional Conveyors, Mobile Rack System, Level Junction, Blocking Railway Tracks, Railway Track Reservation.
- Improved models: SeizeTransporter and ReleaseTransporter, Create Transporter Network by Code, Group Behavior in Services, Material Handling in Hospital, Shopping Mall, Border Checkpoint, Hump Yard, Supply Chain, Predator Prey Agent Based, Activity Based Costing Analysis, Subway Platform, Train Unloading, FluidMerge, FluidSplit.
- Added refactored Adaptive Supply Chain model.
- SeizeTransporter and ReleaseTransporter model now uses cranes.
- Solar Panel Production Line model is updated using newest features (cranes, more flexible station operation modes).
- Removed unnecessary PedSettings and Rail Settings blocks where possible.
- Deleted obsolete example models (Conveyor with Dynamic Speed).
- Fixed memory leak in FluidToAgent and AgentToFluid how-to model.
- Updated how-to models for the upcoming "Big Book".
- Added Chinese translation of descriptions of Rail Library how-to models.
Engine
- Fixed: GISRegion.getRandomPointInside() function could hang.
- Fixed API for creating density map by code (setting type attribute).
- Fixed bug: Unexpected version limitation message since 8.5.1 PLE.
- Fixed potential influence to the model randomness in agents not having stochastics inside.
Material Handling Library
- ConveyorEnter: Fixed possible behavior issue with On cancel enter action when using Hold block.
- Fixed possible animation issue (overlapping items on conveyor) on high real time scale.
- Fixed bug with transporter collision detection in certain models.
- Fixed bug: SeizeTransporter doesn't work properly in case transporter's destination is node.
- Fixed local movement issues of free-space transporters.
- Fixed bug: possible unexpected Path not Found exception with path-guided transporters.
- Fixed possible error when Transporter Fleet capacity is reduced in runtime.
- Fixed: Transporter Fleet controlled by schedule could raise error in some cases.
- Fixed bug with API of free space transporter: getRouteData() was null.
- Fixed possible bug: NullPointerException on ITransporter.recalculateRoute(node) call.
- Fixed bug with On leading edge exit callback of conveyor: it could be called twice for the same item.
- Fixed bug: Transporter released with policy Stay where it is wasn't seized by agent.
- Fixed wrong transporter movement when using lift.
- Fixed possible "Incorrect movement direction" error with legal transporter movement.
- Fixed behavior of recalculateRoute() API function for free-space transporters.
- Fixed possible bug when free space transporter was moving too slow.
- Fixed bug with possible transporter overtaking while moving on the same path due to collision resolution.
- Fixed location of new path-guided transporters when capacity of the fleet is increased.
- Fixed bug when transporter ignored z of level after transition through level gate.
- Fixed bug: distanceTo(...) function could return wrong result for free space transporters.
- Fixed rare error which could occur with agent moved by transporter through lift: agent's network could be set to null.
Process Modeling Library
- ResourcePool: Fixed bug: On destroy actions were not triggered when decreasing capacity with unit destroy configured.
- ResourcePool: Fixed error when unit goes to one more break if the previous one was terminated by the task with a higher priority.
- Fixed Delay flowchart block icon appearance issue (when the number of agents inside the block temporarily exceeds its capacity).
- Fixed bug when Queue didn't release agents after calling remove(0) or removeFirst() function.
- Fixed possible bug with Rack Store / Rack Pick when using resources with certain preemption policies.
- Fixed bug: Assembler could become blocked after changing quantity by code.
Pedestrian Library
- Fixed possible error in PedWait block when saving model snapshot.
- Fixed possible issues with grouped pedestrians waiting in PedWait and PedService blocks.
- Fixed bug with pedestrian routing to the targets inside agents created in runtime.
- PedGoTo: Fixed possible movement issues when the follow route mode is selected.
- Fixed bug when pedestrians could walk along longest route although shortest route was not crowded.
- Fixed error which could occur with groups being formed during a long time.
Rail Library
- Fixed possible errors with model snapshot saving and loading.
- Fixed movement error when car length is greater than track length.
- Train Source: Fixed issue with setting car length by code from Car setup field.
- Fixed possible memory leak in Rail Settings block.
Fluid Library
- Fixed issues when running a model loaded from snapshot.
- Fixed possibly wrong validation of priority values in FluidMerge block.
- Fixed possible exceptions because of with numeric errors, e.g. NoFeasibleSolutionException.
- Fixed bug: Batch with amount less than tolerance is not discarded.
- Fixed bug: Batch with size = 1.0e-6 is ignored by bulk conveyor.
- Fixed bug: Initial batch can be null causing unpredictable flowchart behavior.
- Fixed bug: Not a Number value could be set for rate/amount/speed and other parameters.
- ProcessTank: Fixed bug with constant evaluations of outputBatch parameter on each animation frame.
Graphical editor
- Fixed bug: Collection with element class NetworkPort didn't allow to choose network ports.
- Fixed several errors with drawing and editing rail networks.
- Fixed drawing issue when cloning conveyor station.
Built-in database
- Fixed "Error copying database table" upon exporting model database after model run.
- Fixed possible error when creating new agent from MS SQL database table.
Property View
- Fixed bug: Properties View was disabled when selecting element not from the current agent type.
- Fixed possible problem with opening Properties View for some library blocks.
- Fixed error which could occur when changing parameter having Slider editor control type.
- Fixed behavior of drop-down list property controls - when editing properties of multiple selected elements.
- Fixed bug: macOS: Sorting (manual ordering) in Parameters Preview section could freeze AnyLogic if one of parameters had Slider editor.
Application
- Fixed export from command line: now it includes models from the list of dependencies.
- Fixed opening Java class editor for newly created Java class when Build model sources automatically option in the Advanced tab of the Preferences menu is turned off.
- Fixed bug when restarting AnyLogic or reopening model could return default values into empty fields of Slider range.
- Fixed export to Cloud issue when model has GIS map located in dependent model.
Installation
- Fixed: Recent macOS updates sometimes could block Install package.
Run Configuration
- Fixed compilation error in case if Input parameter type belongs to third-party library.
Material Handling Library
We've added an Overhead Crane. You can choose the type (gantry or bridge) and the number of girders on the crane (single or double girder); the appearance of the crane depends on these properties. Like the Jib Crane that appeared in AnyLogic 8.4, the overhead crane is controlled by the MoveByCrane block.
Automatic collision resolution for custom routing of path-guided transporters.Path-guided transporters are now smarter. They can recalculate their route if their destination is changed and calculate distances to other transporters, including across intersections. Also, they can reduce their speed when navigating curved paths, or when approaching other transporters. Should two transporters meet while traveling, they can incur a time penalty to simulate collision resolution. This is now possible both on paths and at intersections.
For all types of transporters, we've introduced the getDistanceTravelled() function. This helps to calculate the distance traveled by the transporter.
Objects that use robots to move can now select from either the nearest transporter or the one with the shortest route (taking into account obstacles, such as walls, equipment, or conveyors). You can set this selection policy in the SeizeTransporter block.
Process Modeling Library
The idling of equipment, e.g. caused by maintenance or malfunctioning, or any breaks in resources operation is now easier to simulate. In the new Downtime block, you can configure this process by customizing the start time of such idling periods and their reoccurrence policy.
New example models
Demo model: Palletizing Conveyor Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Material Handling Library
- Added automatic collision resolution for custom routing of path-guided transporters.
- Path-guided transporter: implemented function distanceTo() which returns distance on path to the specified point.
- User-friendly error message in case transporter tries to move to an agent without a location set.
- Path-guided transporter: it is now possible to set speed for movement on curved path.
- It is now possible to recalculate destination for path-guided transporters using API call: recalculateRoute().
- Now timeInState() function accepts states specific for transporters (DELIVERING, GOING_TO_AGENT, etc.)
- Added isLoaded() API to cranes.
- Better positioning of free-space transporters while picking and dropping off cargo (using cargoPosition, if defined in transporter).
- MoveByCrane: Added After release option with ability to return to initial position.
- Material items are now removed from their places after processing on station if the station was set as a target in Convey block.
- Added shortest path dispatching policy for free space transporters.
- Added a limitation for the number of path-guided transporters in nodes.
- Speed properties of cranes are now dynamic (may be defined per item).
- Jib Crane: Added initial (home) trolley location.
- TransporterControl: Added API function that switches off transporter vision in certain nodes: disableCollisionAvoidanceInNodes().
- Transporter API: Added getDistanceTravelled() function.
- Implemented removeAgent() function for Position On Conveyor.
Process Modeling Library
- Resource Pool: Added option to count busy time only when defining timeout to failure.
Rail Library
- Train Source: Added First arrival time option.
- TrainSource: added Initial speed parameter.
- Railway Switch: Added toggles counter API function: getToggleCount().
- Railway Track: Added getTrains() API function.
- Improved routing algorithm.
Pedestrian Library
- Density map: smarter handling of semi-transparent colors when using custom color scheme.
- Pedestrian movement: Improved automatic path choice in case of absolutely equivalent alternative paths.
Fluid Library
- Improved error diagnostics.
- Implemented a new tank animation when the tank's capacity is infinite.
Engine
- Various small animation improvements.
Properties View
- Static property of Variable and Function is now hidden (to show, enable the Library developer mode in Preferences).
Installation
- AnyLogic PLE now may be updated without filling the form on the web-site.
Examples
- New models: Palletizing Conveyor, Custom Station, Maintenance of a Coffee Machine, Split One Stream into Multiple Streams, Classification Yard.
- Improved models: Two Level Facility with Lift, Two Stocks Problem, Autoclaved Aerated Concrete Factory.
Optimization Experiment
- Fixed an error which could occur when using optimization with replications having suggested values set for experiment parameters.
Material Handling Library
- Fixed: getNetworkNode() might return null for transporter in the node.
- Fixed possible runtime exception in LiftController.
- Fixed possible exception during discrete event execution: Incorrect time window.
- Fixed: Transporter couldn't enter network node with some specific configurations of connected paths.
- Fixed an error ConcurrentModificationException which could occur in some models with ConveyorMergeController.
- Fixed a rare bug when Overhead Crane didn't move more than one item to attractor or node at default safe height.
- CustomStation: Fixed 'near conveyor' agent location option.
- Fixed bug: sometimes items couldn't enter cell-conveyor from roller conveyor.
- Fixed a possible internal error: "Incorrect distance between TransporterPathItem items".
- Fixed: MHLSettings.executeTasks() function could throw exception.
- Fixed: speed limitation on curves could behave differently depending on how the network was drawn.
- Fixed bug: StackOverflow exception caused by ConveyorPathController_xjal.setMotion() and .updateItem() functions.
- Fixed an animation issue when transporter starts moving from home location (point node).
- Cranes properties: Fixed "Material item type" in the dynamic properties.
- Fixed bug: Transporter could calculate the route to the point with offset at path according to his leading edge.
- Fixed initialization of ConveyorStation/TransferTable manually created by Java code.
- Fixed "agent was not able to leave port" error when cancelling item from Convey block connected with MoveByCrane.
- Fixed bug: getRouteData() throws error when called from On enter path.
- Fixed bug: Transporters could get stuck inside a wall.
- Fixed possible transporter animation rotation issue.
Road Traffic Library
- Fixed error while initializing road network when parking lot is under another road.
- Fixed saving to snapshot bug which could occur in some models.
Rail Library
- Fixed possible exception with parallel multi-run experiments (duplicate registration).
- TrainSource: Fixed arrival mode "from Database".
- Fixed a bug with trains animation in 3D on levels with z < 0.
- Fixed possible bug with saving model snapshot.
Pedestrian Library
- Fixed: Exit number was not recalculated for groups.
- Fixed: Pedestrians could pass through serpentine queue after being serviced.
- Fixed PedSource in "add to custom population" mode: only group leaders were added to the custom population, but not all members.
Fluid Library
- Fixed bug: MixTank.updateAmounts() didn't work correctly if one of amounts equaled zero.
- Fixed Valve.dispense() function, which could lead to actions like Tank On Full not happening.
- Fixed: "This block must be a master" error in some models.
Engine
- Fixed bug: getDistanceByRoute() could throw runtime exception when using local routing graph based route provider.
- Fixed check against too many iterations in parameter variation experiment.
- Fixed the drawing of histogram percentiles and CDF.
Graphical Editor
- Fixed drag and drop of image files to AnyLogic.
- Fixed multi-selection of flowchart blocks by clicking with Ctrl or Shift key pressed.
- Fixed a bug with drawing pipes and tanks with transparent colors.
Application
- Fixed: macOS version could display File Open dialog with wrong language localization.
- Fixed compilation error when using transparent colors for Crane animation.
- Fixed bug: Charts were not shown in search results.
Code generation
- Fixed initialization of GIS Network.
Multi-level models support
We have introduced levels for space markup elements, presentation shapes, charts, controls, etc. Multi-level objects, such as buildings, conveyors, and even cruise liners, are now easier to model in AnyLogic within a single agent.
You work with levels similar to layers found in graphical software. Each level can be designed separately, while maintaining a multi-layer view, and the visibility of the levels can be changed, allowing you to hide or display level contents.
To move material items between levels, special markup elements are used:
- Network port - for AGV with path-guided navigation type
- A new element - Level gate - for AGVs with free space navigation type
- Lift - for any AGVs and material items on conveyors
Material Handling Library
Density map for transporters: We have added a density map for AGVs moving in free space.
Custom routing: Now you can include specific paths in the custom route for the transporters.
New Material Handling Library Tutorial: We have released a new tutorial - Lead Acid Battery Production. It contains step-by-step instructions on how to build a model of a production line for car batteries.
Pedestrian Library
Pedestrian traffic: Pallet racks, conveyors, and cranes now have the Is obstacle property. When it is selected, the space markup element becomes an obstacle for pedestrians and they are forced to go around it.
New example models
Demo model: Material Handling in Hospital Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Agent per Fluid Batch Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Optimization Experiment
- Updated OptQuest optimizer to the newest version, added Javadoc and getOptimization() function returning the underlying OptQuest optimization object. Models calling some specific OptQuest functions now may have "Unreachable catch block..." compilation problem - just remove the underlying try-catch block to fix that.
Material Handling Library
- Added 'z' property to ConveyorNetwork.
- Improved performance and stability of conveyor and transporter movement.
- Transporter Control: recalculateAccessNode(Node) and recalculateAccessPath(Path) functions added to check the conditions of network elements accessibility and open/close access to them accordingly.
- Improved diagnostic messages against invalid parameter values.
- Added deadlock resolution counter - TransporterControl.getCollisions(). The counter works when the Resolve collisions option is selected.
- Transporter Fleet: added option to define capacity via schedule.
- Improved animation: smooth item movement along conveyor curves.
- Free-space transporters: Added parameter specifying maximum speed when moving near an obstacle.
- Added custom resource choice for Station.
- Improved error diagnostics inside Move By Transporter when removing an agent that is being delivered.
- ConveyorSpur: fixed setting a gap between items after they are passed to the main conveyor.
Process Modeling Library
- Pickup and Dropoff blocks are now allowed in the resource unit's prepare / wrap up flowcharts.
- Source block now has First arrival time option in Interarrival time mode.
- Added options to choose the nearest / best unit for the given agent in the Service, Assembler, Rack Pick, and Rack Store blocks.
- Added options to choose the nearest by GIS route unit for the given agent in the Seize and Service blocks.
- Multi-level support: new Level parameter in addition to (x,y,z) in the blocks defining location, like Source.
Engine
- Added an option to turn off warnings reporting during the model run.
- Improved performance of distanceByRoute() function for GIS models.
- 3D Object: Added properties defining the management of the imported 3D object's internal lights and the scene lighting.
- Improved performance when browser window is not visible (minimized, or screen is locked, etc.).
- Changed API for space markup elements initialization. Models created by code may require code changes. Space markup elements should be located in a level now, and levels take care of initialization.
- Added atan2fast(y, x) function to compute atan2 ~20 times faster. Average accuracy loss is 3e-5 radians.
- Added a function to access the custom experiment (if available) from the agent: getEngine().getExperimentCustom().
- Added functions setColor(i) and getColor(i) for all chart types. Use these functions to dynamically change color of the chart items.
- Added the reset() function to delete statistics for Density Map.
Built-in Database
- Ports for working with the built-in database are now chosen dynamically from a range of free ports.
- Improved converter from old QueryDSL API.
Graphical Editor
- It is now possible to place a bus stop on both sides of a unidirectional road.
- Improved grid snapping of the lift element while resizing and dragging.
Properties View
- Path: Max speed and number of transporters limits are now code fields allowing e.g. to use parameter values there.
Application
- Maximum Java heap size (-Xmx) for AnyLogic IDE increased to 4 GB.
- Export to Cloud: Added matching the existing model by name when uploading a new version.
- Export to Cloud: Now we suggest the Test models category by default in AnyLogic for Evaluation license and for PLE edition.
- Implemented dynamic port choice for incoming messages from command-line interface and running models.
- AnyLogic application is now configured to use 4 GB of memory.
Examples
- New models: Material Handling in Hospital, Agent per Fluid Batch, Conveyor Singulator.
- Improved models: Crude Oil Pipeline Network, Gas Station, Oil Supply Chain, Product Delivery, Reading and Writing Excel Files, SIR in GIS Based Space.
- Added links to source materials where applicable.
Runtime UI
- Added indicators for network access and progress of individual runs in multi-run experiments.
Material Handling Library
- Fixed an error in transporter movement which could occur when setting speed limits to some nodes.
- TransporterControl.findPath throws RuntimeException if LocationXYZ is used as an argument.
- Conveyor Spur: Fixed and improved item movement, merging, priorities, and blocking logic.
- Fixed bug: Transporter could move in the wrong direction in some cases.
- Fixed bug: Callback on leading edge could be called for an agent that can't enter the station.
- Fixed bug: Station might not start processing despite having enough items.
- Move By Transporter: Fixed a possible error with setting the final agent destination location when Release transporter is turned off.
- Fixed a possible error in the free space movement through narrow corridors.
- Fixed a possible error when free space transporters could ignore racks and conveyors marked as obstacles.
- Fixed a possible error ("Incorrect event time") in the transporter path logic.
- Fixed transporter route selection if the picked agent is located in a polygonal node.
- Fixed Save in snapshot feature for free space transporters.
Process Modeling Library
- Fixed bug: Possible duplication of the On seize action call when using Seize.recalculateResourceChoiceConditions().
- Assembler: Fixed bug: Setting the location for assembled agents in the On at exit action. Added the Output buffer capacity parameter.
Pedestrian Library
- Fixed bug: grouped pedestrians could be stuck in a looped flowchart in case the destination point changes frequently.
Engine
- Fixed bug: Optimization experiment didn't resume after pause.
- Statechart: Fixed current state value returned within the action of the final state.
- Runtime UI: Fixed animation frames accumulation caused by animation window being minimized or screen locked.
- Fixed incorrect agent movement from outside to the network: some agents could move along a straight path.
- Fixed Combo Box element: if the default value is empty, the first value from list should be set automatically.
- Fixed: Schedule initialized from the build-in database could throw incorrect interval error.
- Fixed a problem with strange pale colors of some 3D shapes (e.g. rail cars from the palette).
- Fixed javadoc of exportToExternalDB() function of getEngine().getModelDatabase().
Built-in Database
- Fixed compilation error when using option Check if any rows match condition(s) in query builder.
Graphical Editor
- Fixed an error when trying to drag a path child element (Conveyor Spur, Station, Road Stop Line, etc.) from palette to a path (Conveyor, Road, etc.) while there is a multiselection in the graphical editor.
- Fixed bug: Changing the scale didn't change the scale of conveyors.
Properties View
- Fixed an error indication for a radio button linked to a variable: the error "Invalid number" was displayed when typing the name of a new item.
- Fixed appearance issues of the color picker widget after saving the model.
- Parameters Preview section: Fixed freezing during reordering of parameters under macOS in some cases.
- Fixed an error with displaying the properties of a collection linked to a DB table.
- Fixed Built-in Database properties: the same file was added to the list of input data sources after several imports (of different tables).
- Fixed bug: Text file element didn't show file name properly in some cases.
Application
- Fixed bug: Creating a custom flowchart block that contains a Batch block.
- Fixed issues with connectors placement when creating a flowchart block from selection.
- Fixed error: Resolving .jar dependencies from outside of a model folder.
- Fixed an error which could occur when exporting a model with GIS offline routing graph.
Examples
- Fixed possible errors in these models: Flexible Manufacturing Supply Chain, Palletizing system with AGV.
Material Handling Library
Transporter movement: Transporters can now move freely, without the need for guidance paths. They can take into account obstacles, including walls, equipment installations and other transporters. Free space navigation can be specified in the TransporterFleet block.
For path guided transporters (AGVs), 8.4 now enables custom routing logic to be specified in the TransporterControl block.
Multi-level conveyor networks and AGVs: New elements in AnyLogic 8.4 make it possible to operate networks of conveyors and transporters across multiple segments and levels. The Network Port element allows you to logically connect two conveyor networks or sections of a conveyor into a single network. While a new Lift space markup element can connect networks operating on different levels. Navigation between ports and lifts can be configured or left automatic. Together, these objects simplify the modeling of complex multi-level conveyor systems.
A Jib Crane space markup element is also now available, it is operated by the MoveByCrane block. It can connect one or more networks.
Dynamic route recalculation can now be done on demand by calling the recalculateRoute() function. For example, if reading the current conditions from the Convey block shows that there is congestion, it can change the route of a material item or AGV.
Connecting conveyors: Another notable development in the Material Handling Library relates to the connection of conveyors at angles. Previously it was necessary to use Turntable or Transfer Table elements. Now, a Conveyor Spur element is automatically created instead.
User interface and working with models
We have improved 3D and 2D animations with increased frame rates and responsiveness.
Now automatic code formatting can be applied to one or several elements, or even the whole model.
Models can now be exported as separate Java applications from both the GUI and the command line. Exported models can include embedded browsers for different OSes. This makes models accessible even if you do not know the OS of a target computer.
When the model is running, in the Developer panel, you can go to the Events panel and observe the event queue. You can also go to the event itself or the agent that it applies to.
Model resource management
In addition to the model file and its database, there may also be other associated resources, such as GIS and CAD files, images, text, and spreadsheets. In 8.4, they can be managed from the Resources group in the model tree. Furthermore, AnyLogic knows which files are needed to launch a model and includes them when exporting.
Process Modeling Library
To improve the animation performance of large storage systems, the default drawing mode of the RackSystem block is now color indication mode.
The Pickup block now has a new operation mode Exact quantity. This causes it to wait until it has the specified number of items before moving on. For example, packaging items coming off a conveyor in a material handling model.
AnyLogic Cloud
With the release of 8.4, we have also released AnyLogic Private Cloud Lite – a low-cost, easy-install version of AnyLogic Cloud. It can be installed on a local network workstation and allows the private sharing of simulation models within an organization. You can compare the versions of AnyLogic Cloud here.
Excel files, or any other file type, can now be used to set simulation model input parameters.
New example models
Demo model: Fulfillment Center Conveyor System Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Rack System with AGV Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Two Level Facility with Lift Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Order Picking Line Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Buffer with Lift Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Runtime UI
- Added indicators for network access and progress of individual runs in multi-run experiments.
- Scale object (ruler) is now displayed at runtime.
- Rapid changing of the index of a replicated agent being displayed by pressing Up and Down keys while the focus is in the index field (in Developer panel). Allows for quicker iteration through the population.
- Added time of day input to the Run until... and Pause at... controls.
- Ctrl scroll in 3D window now changes 2D presentation zoom.
- Improved visual appearance of the chart area: now solid borders are drawn only along axes.
Engine
- Improved error diagnostics in some cases.
- Disabling and enabling of the Run/Pause and speed control button groups at runtime by calling the setRunControlEnabled() and setSpeedControlEnabled() functions of ExperimentHost.
- Added the onError(error, root) callback to the experiment API - may be overridden like the single argument function onError(error), but provides access to the originating top-level agent of the model (useful in multiple run experiments).
- Added the remove() function to all markup elements - an easy way to remove the element from the presentation. Such removal however does not necessarily mean removing from the model logic as logical networks and routes may have been created before the removal and survive it.
- Added ShapeArrowLine - a line with optional arrowheads. Use this object should you need a line with arrows. Arrow-related API of ShapeLine is deprecated and will be deleted in future versions.
- Added indexOf(array, textExpression) function to find the first matching element, e.g. indexOf( people, p -> p.getName().equals("John") ).
- traceln() and TextFile.println() functions now support printing 2D arrays.
- Added higher performance mode for models with both System Dynamics equations and dense discrete events. See the new function getEngine().setEventAwareSolver().
- Added Pair class to the public API.
- Added temporary API to change the line and fill colors of individual shapes in the shape file at runtime - see ShapeGISMap.Layer functions setFillColor() and setLineColor(). WARNING: this API is unstable and may be replaced in the future.
- Changed SQL Java API (QueryDSL-based): function exists() was replaced with hasResults(). E.g. selectFrom(orders).hasResults().
- Changed code generation. Any custom user libraries should be rebuilt to work with this version of AnyLogic.
Graphical Editor
- Resize handles are optimized to edit small shapes.
- Expanded range for zoom by Ctrl scroll: 5% - 4000%.
- Scale of 3D object can be changed by dragging the handle.
- Custom search bounds are now displayed on a GIS Map.
- Conveyors: Now AnyLogic automatically sets Z-level for new markup elements on connection to the existing conveyor with the defined Z-level.
- Added context-menu action in the graphical editor to convert Action Chart element to a Function.
Application
- Download and single-click installation of the pack of built-in browsers for all operating systems - useful when exporting model as a stand-alone application targeted to different OS. See AnyLogic Help menu.
- Added browser choice to Preferences - used when running the model from AnyLogic.
- Enabled switching to AnyLogic while the Get Support window is open (it can be minimized and is no longer modal).
- Path markup elements are now always inside networks. AnyLogic creates networks automatically for all single (not connected) Path elements. Old models are converted upon open.
- Progress of model export to stand-alone application is now more precise when copying large files.
- Added COMPACT parameter as AnyLogic database shutdown option.
- Added option to Preferences to setup maximum available memory for AnyLogic Database.
- Updated some of the third-party libraries to the latest versions, e.g. database libraries. Models that use QueryDSL API directly may have compilation errors and will require code review and small changes.
- Projects View: All types of networks that contain a single element are now expanded in the Projects view for convenience.
- New Experiment wizard: custom experiments now may have model time settings taken from other experiments.
- Welcome page: Added links to AnyLogic Cloud API documentation.
Properties View
- Added Color class option when choosing types for parameters and variables.
- Database: Enabled viewing of the resources (Excel/Access/external server) used for the auto import / export.
- Enabled editing properties of multiple selected library blocks of the same type.
Process Modeling Library
- Pickup block now has the Exact quantity option: a container agent will wait until there are enough items coming into the 'inPickup' port (e.g. packaging items from Convey block in a material handling model).
- RackSystem by default now uses this drawing mode for stored agents: Don't draw, use color indication (fast). This significantly improves animation performance of large warehouse models. Check your models appearance and go back to the At the default position mode if needed.
- Function Delay.getDelayTime() now returns the initially chosen value for the agent, it isn't increased when block/agent is suspended.
- Seize / Service/...: Added warning when agent passes the block immediately due to empty resource set(s) defined.
- Source blocks now have a no argument inject() function, an equivalent to calling inject(1).
Material Handling Library
- Added Is obstacle property for markup elements to be used by transporters with free space type of navigation.
- Added On at exit action for MoveByTransporter and other respective blocks.
- Station: Renamed parameter Delay to Process time.
- PositionOnConveyor: Added callback for cell conveyors: On cell enter and On cell exit.
Fluid Library
- Animation of the ProcessTank and MixTank now has beautiful gradient color transition in processing phase, and components are shown in MixTank animation.
- API: functions of MixTank related to batches and functions of ProcessTank related to batch colors have changed their return values. Consult the documentation.
- FluidToAgent: flush() function forces the block to create a new agent from the current amount accumulated in the block regardless of the block settings.
- MixTank: updateAmounts() function updates the component amounts if the mix is specified by amounts of the components. If the mix is specified by the total amount and fractions of each component, the function updates the total amount of mix. The tank must be empty at the time of the function call.
- ProcessTank: updateCapacity() forces ProcessTank to re-evaluate the dynamic capacity parameter.
- FluidSelectInput: toggle() function now returns 1 if input 1 becomes selected or 2 if input 2 becomes selected.
- Handling of numeric errors by snapping the calculated values to acceptable via comparison to internal constant Utils.TOLERANCE.
- Added API to get the transporter that is transporting an agent: getTransporter().
Legacy
- The 32-bit version of AnyLogic for Windows operating systems is no longer supported.
Runtime UI
- Fixed: Drawing of the icon for initially empty population in some cases.
- Fixed: Drawing of Plot with dynamically added datasets: there could be filled area under the line.
- Fixed bug: The Navigation type property of 3D Window.
- Fixed: Sloped area was drawn in 3D like a horizontal one.
- Fixed: Agents of ignored agent type with custom icon caused error during animation frame drawing.
- Fixed: In some cases agent presentation rotation was applied incorrectly.
- Fixed: Runtime drawing of the Arc element with angle >= 2*PI.
- Fixed: GIS shape files rendering at runtime: shapes with excluded inner regions and multiple region shapes are now displayed correctly.
- Fixed: Drop-down list of a combo box at runtime now stays within the visible area (opens either upwards or downwards).
- Fixed: Animation of agents in GIS space now fully obeys the scaling rules (hide, show constant size, or use real scale).
- Fixed: 2D projections of shapes rotated around X or Y axis are now adjusted according to the rotation angle.
- Fixed: Arrowheads of agent links are now drawn according to the settings.
- Fixed: Drawing of 3D objects inside a replicated group.
- Fixed: Possible issues with color contrast of 3D animation shapes.
Engine
- Fixed bug: Added randomizing the locations for dynamically created agents in continuous space were - if Random layout option is chosen.
- Fixed: Error during the construction of the network containing pallet racks with some special cases of paths and nodes inside a rack aisle.
- Fixed: Logging to the database feature for agents with multiple statecharts.
- Fixed: Calling presentation.remove(markupElement) now removes the markup element from the presentation. See also: added remove() function to markup elements.
- Fixed: Initial visibility issue for GIS markup elements dynamically added to the map by using GIS search API.
- Fixed: Calling Agent.jumpTo(node) with the node from different space now automatically moves agent to that space.
- Fixed: Loading from snapshot of models with agents generated in the Source block by arrival table from the database.
- Fixed TextFile.print() and TextFile.println() functions, when called with an array argument, they now write the array contents.
- Fixed: 3D Object: setColor(materialName, color) function wasn't working if custom colors were not defined.
Graphical Editor
- Fixed problems with drawing Parking lot, Bus stop and Conveyor elements on HiDPI displays.
- Fixed problems with placing a transfer table on a narrow conveyor.
- Fixed problems with repainting some elements when changing colors in the Properties view.
Application
- Fixed error that occurred on adding one more Generic parameter to Agent type.
- Fixed: Temporary directory with model sources wasn't deleted after uploading the model to AnyLogic Cloud.
- Fixed: If Excel file contains formulas, the imported table has empty cells instead of the result.
- Fixed: Create Documentation feature returns the report with nulls in column headers and page numbers.
- Fixed: Subdimensions are not copied with the master dimension.
- Fixed error when adding 3D object with spaces in its filename.
- Fixed: AnyLogic proxy settings were not transferred to the running model.
- Fixed bug with switching the product language to Brazilian Portuguese.
Properties View
- Fixed: Copy-paste actions for tables with coordinates (e.g. points of path).
- Fixed: Error while linking slider to a parameter of flowchart block.
- Fixed: Schedule: wrong conversion from days to week in the Repeat every week option.
- Fixed: Error in the Position and size section when selecting several geometric elements (Rectangle, Oval) with different rotations.
- Fixed: Maximum available memory for Experiment / Run Configuration wasn't saved in some cases.
- Fixed: Some properties of Material Handling space markups elements didn't support multiselection editing.
Process Modeling Library
- Fixed: Custom agent speed defined in the properties of Agent type section could be not applied for agents created in flowchart blocks.
Material Handling Library
- Fixed: Enabled using self variable in the code fields of Material Handling Library space markup elements.
- Fixed: Creation of a new agent type from the properties of TransporterFleet block: added Transporter to the list of available options in the Use in the flowcharts as property of the Agent Type.
- Fixed: Possible bug where the Process Modeling Library required to build the model with Material Handling Library blocks only.
- Fixed: Conveyor that stopped due to blocked position on another conveyor wasn't restarted after position unblock.
- Fixed: Possible error when material items leave the current conveyor at the speed of the next conveyor.
Fluid Library
- ProcessTank: fixed error which could occur when appending batches while changing the output rate.
- Fixed error: FluidMerge could generate "null" batch at output.
Material Handling Library
AnyLogic version 8.3 introduces the specialized Material Handling Library. It enables and assists the simulation of processes in factories and warehouses. The library is especially useful for simulating production lines and assembly lines, as well as the transportation of goods in warehouses and factories – including the use of robots, such as automated guided vehicles (AGV). The routing of AGVs can be handled automatically in AnyLogic to help simplify model development.
New example models
To help you get started with the new library, there are several example models and how-tos. You can find the example models on the AnyLogic welcome page in the application, and also in the AnyLogic Cloud:
- Solar Panel Production Line
- Palletizing system with AGV
- Warehouse conveyor
Models now launch in the browser
If you run a model in AnyLogic 8.3, instead of the usual presentation window, a browser window will open to display the model animation. This development enables improved animation, as already seen in the AnyLogic Cloud.
New 3D shape format support
AnyLogic 3D shapes now use the Collada (*.dae) format. This gives developers greater freedom to use 3rd party objects in models. Note: 3D shapes in the old *.x3d format will be converted and should be verified.
Custom blocks can be created in 2 clicks
Custom flowchart blocks are useful when you need to simplify the appearance of a process diagram or use the same group of blocks several times. To create a custom block: in the process diagram, select the blocks you want to group, right click the mouse button, and select Create Flowchart Block from the context menu. The properties and icon of custom blocks are customizable.
- Cloud model animation: added camera transition animation.
- Colors dialog: the Chosen color text field is now editable.
- Graphical Editor: 3D window grid is drawn at design-time.
- Graphical Editor: camera element is centered and highlighted in the editor after pasting new coordinates from clipboard.
- Improved interactivity of model animation: shapes having On click code are now highlighted on mouse cursor hover.
- Properties: Agent and Embedded Agent / Population, Dimensions and movement properties: added highlighting for non-default values.
- Conveyor, Bulk conveyor belt: added properties to draw stands, from some base Z-level.
- Increased performance of opening a model and showing Properties view.
- Statechart actions: added 'self' argument - reference to the current statechart element.
- 3D Lights: changed properties: some advanced light settings are removed, e.g. specular color, quadratic attenuation.
- 3D Object: It is possible now to use transparent custom colors in 3D objects.
- Exporting model to standalone application now generates run script files (e.g. bat, sh) for all operating systems (Windows, Linux, Mac). The only requirements are Java and, for OS other than the one the model is exported from: Chromium browser in a 'chromium' subfolder of exported model.
- Refactored some example models to using Canvas shape - improved drawing performance for large populations (with > 100k agents).
- Refactored Harvest Simulator example - now using Fluid Library.
- Engine API: Renamed Presentation concept to ExperimentHost: getPresentation() function is now deprecated. Use getExperimentHost() instead, if needed. Old models are converted automatically.
- Engine API: Added traceln() functions with color argument, which allows you to add colored lines to model's debug panel console.
- Engine API: Added new functions for searching network elements.
- Engine API: 3D Object: it is now possible to change custom color mappings at run-time using setColor(materialName, color) function. Material name can be found in property view.
- Engine API: Added more toDate() functions: parsing string as a date and creating date for the given day, month, and year values.
- New 3D objects: manufacturing machines, aircraft parts.
- Introduced smooth 3D camera movement.
- 3D Objects added from palette are now stored in 3d subfolder, not x3d as earlier.
- New 3D-objects – aircraft parts and manufacturing equipment.
- Process Modeling Library: ResourcePool. Added function getRequests() to view current queue of requests for resource units.
- Process Modeling Library: Seize. Added function recalculateResourceChoiceConditions() to re-check custom resource choice conditions for reserved and idle units which may become available for reserving and seizing by some agents that are waiting for a unit.
- Process Modeling Library: Seize: added options to choose the nearest / best unit for the given agent.
- Pedestrian default animation is now not click-selectable by default. To customize this please add PedSettings block to your model and turn on the corresponding parameter.
- Legacy: removed 32-bit version of AnyLogic for Linux operating systems.
- Legacy: Charts: removed On item removal code property.
- Legacy: Group: On draw code property: graphics and panel keywords are no longer available.
- Legacy: Experiments: removed Maximized size, Close confirmation and other window-related properties. Added options to enable and to show developer panel on start.
- Legacy: Standalone exported models: removed runtime preferences dialog. Introduced ini-file mechanism to define custom preferences.
- Experiment: new design of user interface created by default for new simulation, optimization, parameter variation and other type experiments. For example, there is no "Run the model" button anymore. Standard Run button should be used.
- Experiment: Enable zoom and panning option: now, if off, it doesn't allow to look outside of the current view area, while allowing to zoom/pan inside the area (common behavior for touchscreen devices).
- Added preferences for setting connection to a Private Cloud.
- GIS map: The Cycle map type of tiles was removed due to changes in its usage policy.
- Export to AnyLogic Cloud: Added options to provide public access to the model and describe it.
- Temporary change: disabled drawing of links between agents in GIS space.
- Temporary change: Events Profiler is not shown at runtime.
- Temporary change: Area having slope is drawn in 3D like horizontal.
- Code generation of getNameOfShape_xjal() could exceed the size limit.
- Code generation of "On click" code for Agent Presentation shape of agent population.
- Fixed bug with build error after deleting model database.
- Toolbar: fixed bug when AnyLogic Cloud user name could be "null" on the Login toolbar button.
- Graphical Editor: fixed editing of Text element: Ctrl + A was not working in the in-place editor, corrected displaying of non-English letters.
- Fixed example model "Wholesale warehouse", reaction to controller capacity change.
- Fixed example model "Predator Prey", where NaN could occur on a virtual speed.
- Fixed example model "Grain Terminal", where deadlock could occur on a virtual speed.
- Some old 3D rendering issues were fixed with migrating to new 3D (browser-based) technology.
- Fixed 3D drawing issues related to Text shapes displaying certain languages.
- Fixed function executeExpression() - now it supports parallel evaluations in multi-run experiments.
- Fixed order of initialization: Schedules, Custom Distributions and Table Functions are now loaded from database after agent parameter are set.
- Fixed bug: sometimes adding new parameter to agent type didn't add it to agents of that type until reopening the model.
- Shapes' properties: fixed bug with changing color from "No/default color" to some value using the Colors dialog: this might result to a fully transparent color.
- Fixed creation of Compare Runs experiment: there could be a compilation error with automatically generated call to getPresentation().refresh().
- Fixed code completion in statechart transition triggered by message (type of msg argument).
- Library blocks' properties: Some flowchart blocks had their essential Agent type parameter in the Advanced section - now these arguments are in the top section.
- Process Modeling Library: Seize block: fixed exception in queue when the Enable preemption mode is turned on.
- Process Modeling Library: Fixed resource movement through network when preemption occurs: units might instantly jump to the current agent's location.
- Fluid Library: In some cases one Bulk Conveyor with in-rate equal to zero couldn't be stopped.
- AnyLogic Cloud: Uploading: Reduced size of the GIS cache.
- Engine: Fixed error: function Path.getPointAtOffset() could return NaN coordinates in rare cases.
- Engine: Fixed goToPopulation( population ) function: it could cause internal presentation error.
Export models to AnyLogic Cloud
AnyLogic Cloud (https://cloud.anylogic.com/) is a web service that allows you to run models online from a web browser on any device, including phones and tablets, and share the models with other users.
The model export scenario is quite simple. You have just to define inputs and outputs of the model using the Run Configuration editor.
The AnyLogic Cloud experience starts in the desktop application where you define inputs and outputs of the model. The model is then uploaded to a secure cloud-based storage. It is executed remotely and leverages high performance cloud computing by utilizing as many nodes in parallel as needed.
With AnyLogic Cloud, you can:
- Configure experiment parameters in teams using version control.
- View model animation.
- Create custom dashboards to analyze outputs and key metrics.
Inside AnyLogic Cloud, you have a collection of your own models that you work with as a developer or a user. You can share these models with anyone to organize a mutually beneficial cooperation.
Access public models shared by the AnyLogic community or create your own online simulation portfolio by uploading them from AnyLogic.
New example models
Demo model: Border Checkpoint Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Crude Oil Distillation Unit Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Consumer Credit Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Airlines Fleet Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).- New Output element allows to track scalar numeric (or other supported type) values to be reported to AnyLogic Cloud.
- Better support of high resolution displays (HiDPI, Retina etc.).
- Frame size is not defined in the properties of an experiment, you can resize the frame by dragging its borders with the mouse.
- Combo Box control is now available in all editions.
- Now GIS Map uses Mercator projection only.
- Removed old (version 6) libraries.
- Code completion now shows better suggestions (containing the desired text also in the middle of name of the function / variable).
- Added preferences for setting the default location for new models.
- Statechart states are now generated as Java enums - not as numbers of type short - some models might be not fully convertible, please check them. E.g. if your function has argument - state of type short, change the type to MyAgent.MyStatechart_State where MyStatechart is the name of your statechart.
- Removed non-persistent shapes concept. Now all animation shapes, controls and charts are persistent (have programmatic control).
- Removed getPresentation().getPanel(), getOffsetX(), getOffsetY(), getZoom() and getFrame() functions.
- When model is run from custom experiments getPresentation() function will return some not null dummy object.
- Charts with time axis: added predefined date format patterns.
- New experiment property "Enable zoom and panning" (instead of two independent properties).
- Schedule: removed redundant property "List of ranges / List of start times" which was duplicating "Intervals / Moments" property.
- Parameters with units (Time, Rate, etc.): removed almost useless property "Numeric type" - now all such parameters have type double.
- Agents configured to be placed at the animation location now have initial rotation, according to the animation rotation.
- Agent population now has stream() method which allows operations according to Java 8 Stream API.
- Added Agent.applyNetwork() and randomAgentInside() function variants which can utilize custom random generator and allow to build agent networks of the same structure in experiments having random seed / replications.
- Improved performance of dataset and histogram data.
- Now you can set run-time animation zoom from 1% now (using text input field on toolbar).
- Process Modeling Library: Queue: renamed sortEntities() function to sortAgents() (old one is deprecated but still working).
- Properties View: Fixed copy-paste actions of rows in some tables.
- Graphical editor: Disconnect a library block from a flowchart by dragging it with Shift key.
- Graphical editor: Allow connecting a library block to a flowchart when copying it by Ctrl + drag.
- Graphical editor: Create Text File, Excel File, Image or Object3D by dropping an external file onto agent's diagram.
- Graphical editor: Double click on Text Element opens an in-place editor.
- Projects tree view: Java classes of java @annotation and java enum types now have corresponding icons.
New Road Traffic Library
The main new feature added is the Road Traffic Library. The Road Traffic Library allows you to simulate vehicle traffic on roads. The library supports detailed physical level modeling of vehicle movement.
The library allows the users to simulate:
- Vehicle movement on roads, taking into account driving regulations.
- Traffic lights, pedestrian crossings, and priorities at junctions.
- Parking by the road side.
- Public transport movements.
The Road Traffic library is suitable for modeling highway traffic, street traffic, on-site transportation at manufacturing sites, or any other systems with vehicles, roads, and lanes. A special traffic density tool allows you to analyze road network load.
Fluid Library improvements
We added more blocks to the Fluid Library:
We also radically improved the library engine so that the execution speed stays high even for vast and dynamically reconfigured networks. The fluid library blocks now collect statistics on stored amounts and flow rates and move it to the built-in database. Improvements also include custom reaction on rate changes, extended API, and better animation.
Easy data import from external DB
Also, users now have the ability to load data for schedule, table function and custom distribution from the database.
New example models
Demo model: Grain Terminal Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Crude Oil Pipeline Network Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files). Demo model: Chocolate Production Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Built-in database
AnyLogic models now have a built-in fully integrated database to read input data and write simulation output. The database is exported with the model and is as portable and cross-platform as the model itself. With the new database, you can:
- Read parameter values and configure models
- Create parameterized agent populations
- Generate entity arrivals in the process models
- Import data from other databases or from Excel spreadsheets and store it in the easily accessible form
- Log flowchart activities, events, statechart transitions, message passing, and agent biographies.
- View resource utilization, waiting, processing, and travel times
- Store and export statistics, datasets, and custom logs
Fluid Library
The new Fluid Library allows you to efficiently simulate storage and transfer of fluids, bulk matter, or large amounts of discrete items, which you do not want to represent as separate objects.
Escalators and zigzag queues for pedestrian flow models
AnyLogic Pedestrian Library has been upgraded with highly customizable escalator and zigzag (or serpentine) queue objects.
Railway routing option for GIS models
In addition to car, bike, and foot routing methods, AnyLogic GIS now offers routing by railways.
Shape files conversion to AnyLogic markup
Vector graphics from imported shapefiles can now be automatically converted into AnyLogic markup elements, such as rail tracks, which can be used with the Rail Library.
Quick popup help for library blocks and parameters
Now if you hold the mouse pointer over a library element or a parameter, a window with quick help will pop up.
New example models
Distribution center, Gas Station
- Massive upgrade of the GIS Map shape
- Discrete event modeling with GIS
- New GIS-related API
- Agent type propagation in the library blocks
- Library block icons design
- New types for the Parameter element
- Controls for choosing units
- Easy linking of controls to parameters
- 'Show in graphical editor' button
- Highlighting of the referred objects
- Hyperlinks in code
- Space markup element Scale
- Transition to Java 8
- New example models (featuring GIS)
- Other changes and improvements
Massive upgrade of the GIS Map shape
The GIS Map shape has been greatly improved: now it supports tiled maps (i.e. OpenStreetMap), and you can use all the data that comes along with them: cities, regions, road networks, objects (hospitals, schools, bus stops, etc.). You can place agents in specific locations on the map, and make them move along existing roads or routes. The routes can be requested from one of the supported route servers (AnyLogic, YOURS or BRouter), or you can create a routing graph from an .osm file using the built-in wizard. Once downloaded, tiles and routes are cached, enabling users to work in offline mode.
You can create the required elements on the map inside the model, using the built-in map search or new space markup elements (i.e. GIS Point, GIS Route, and GIS Region). Using the GIS Search Results view, you can also create a GIS Multiregion object.
The space of the agent becomes GIS Space when you add a GIS Map shape on its diagram.
Read all about the new GIS features in the help section GIS Models.
Discrete event modeling with GIS
The GIS space has been traditionally used in the agent-based modeling. Now you can combine agents, GIS and process flowcharts in one model.
Read more about this integration here.
New GIS-related API
- New functions for agent placement, for instance, setLatLon(), getLatitude(), etc.
- New functions for agent movement, such as moveTo(geographicPlace), moveTo(node), etc...
See AnyLogic API reference: GIS package
Agent type propagation in the library blocks
Now you have access to parameters of a custom agent type in every flowchart block with no need to specify it anywhere except for the block that generates those agents in the flowchart. These are the flowchart blocks like Source, Enter, Assembler, Split, Batch, etc.
For instance, specify your agent as the New agent that the Source block should generate, and you will be able to use the agent variable to access your custom agent type's parameters in the following library blocks of this flowchart. You can check if the agent type is propagated in the Advanced section of the properties of library blocks.
New block icons design for the libraries
New types for the Parameter element
The Parameter element now can be defined in Time, Rate, Speed, Length, Acceleration, and Area units of measurement. First you choose the parameter type, then you will be able to choose the units for this type.
Controls for choosing units
Now you have the ability to quickly set your agents’ speed at miles or kilometers per hour, choose time units for timeouts in events, transitions, Source blocks, and so on. Then, no matter what your model time units are, the objects in the model will keep their processes defined in the real units of measurement.
Easy linking of controls to parameters
In the control's Properties, select the option Link to, and then choose an element from the drop-down list: a parameter, a variable, even a parameter of some flowchart block. There is no need to manually type the name of this parameter anymore:
'Show in graphical editor' button
After you choose some element in another object's properties, you can find it in the graphical editor by clicking this button:
Highlighting of the referred objects
All elements that are used by a flowchart block or any other object are highlighted in the graphical editor. If you select a block that refers to other objects in its properties, you will see these objects highlighted in the purple color:
Hyperlinks in code
Ctrl + click the name of a model element in the code to navigate to it in the graphical editor. The element will appear in the center of the graphical editor, highlighted in the purple color.
Space markup element Scale
You can find the Scale element now on every agent diagram above the X axis. Its new functionality allows you to easily define the scale of agent's animation figures and explicitly control the number of pixels in one meter or any other unit of length for the whole diagram of this agent type.
Transition to Java 8
New Java 8 has better collection-related API
New example models
The example models Corporate Education, Product Delivery, and Oil Supply Chain feature the new GIS Map functionality.
Airport with Two Terminals - A model of an airport with two terminals. Includes flight schedule, check-in, security check, shuttle train between the terminals, boarding, unboarding, and baggage claim. The model features hierarchical/modular architecture, usage of AnyLogic Pedestrian Library, Rail Library, and Process Modeling Library, and 3D/2D animation. The passenger, train, and aircraft processes are interconnected.
Demo model: Airport with Two Terminals Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Corporate Education - A model of corporate education in a company with a number of regional branches and high employee turnover (such as a bank or an insurance company). Allows to obtain the level of employees education over time (fraction of fully trained, training overdue, etc.) as well as the amount of associated travel as a function of the number and location of own trainers and group policy. The model is fully parameterized from Excel, including branch locations, employee types and numbers, individual education plans, trainers, and trainer competences.
Demo model: Corporate Education Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Product Delivery - This model simulates product delivery in Europe. The supply chain includes three manufacturing facilities and fifteen distributors that order random amounts of the product each 1-2 days. There is a fleet of trucks in each manufacturing facility. When a manufacturing facility receives an order from a distributor, it checks the number of products in storage. If the required amount is available, it sends a loaded truck to the distributor. Otherwise, the order waits until the factory produces the sufficient number of products. This model is essentially multi-method. Distributors, trucks, and manufacturing facilities are agents with custom behavior. The latter includes system dynamics diagram of production and a flowchart that simulates order processing. Agents live in a GIS space. Names of initial locations of manufacturing facilities and distributors are read from Excel file. GIS search engine is used to find locations on map and place agents there. Trucks move on real roads, and routes are created when vehicles start moving to destinations.
Demo model: Product Delivery Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).Oil Supply Chain - An oil supply chain. Crude oil is delivered by tankers to the port storages. Then, by pipeline to refineries. Refined product is pumped through a pipeline network to the terminal storages, and then is delivered by ground transport to the retailers. This is an agent based model: storages, refineries, retailers, pipelines,trucks, and tankers are agents. The model has 2D animation on a GIS map.
Demo model: Oil Supply Chain Open the model page in AnyLogic Cloud. There you can run the model or download it (by clicking Model source files).- Local variables in Process Modeling Library blocks' parameters renamed from entity to agent.
- The Source, Assembler, Split, Batch, Enter library blocks have a new speed parameter.
- The configuration block PML Settings moved from the Auxiliary section to the major Blocks section of the Process Modeling Library palette.
- The Select flowchart option in the context menu of any flowchart block.
- Hanging connectors are removed when flowchart block is deleted (check the Preferences dialog).
- The Open containing folder option in the context menu of the model
- Drag'n'drop a folder (or a few selected folders) on the Projects or Palette view to open all models that the folder contains.
- Export of the model now includes the required dependencies (models).
- New filter in the Problems view that displays errors only for the active model.
- The Run button now starts the experiment of last opened or last created model by default (check the Preferences dialog).
- Randomness: Fixed Seed is now set by default in newly created experiments.
- The Create collection option in the context menu of the selection of several one-type objects.
- The Create chart option in the context menu of Dataset, Histogram data, Histogram data 2D, arrayed SD variables.
- The General palette has been redesigned into Agent palette.
- The dialog for choosing an image file opens automatically after you drag the Image object on the diagram.
- The PalletRack block is now drawn with upright posts in 3D and you can define the number of cells between the posts.
- The Attractor element now has drawing mode.
- The 3D Objects palette: 20 new figures.
- The Path, Railway track elements have a new function length().
- The RackSystem library block has new functions: nRows(), nLevels(row), nPositions(row), nDeepPositions(row).
- Convert the given number of model time units to specified time units and back with toModelTime(), toTimeUnits().
-
How can we improve this article?
-