What's new in AnyLogic 7

Interface

Parameters

Agents

Space markup

Process Modeling Library

Animation

Pedestrian Library

Railway Library

Miscellaneous


New workspace layout

In the center of the workspace you will see the graphical editor.

To the left of the graphical editor you can see the Projects view and the Palette view sharing the same area. The Projects view provides access to AnyLogic models currently opened in the workspace. The workspace tree provides easy navigation throughout the models. The Palette view contains all graphical elements you can add onto the grpahical editor of your agent just by drag'n'drop. Model elements are grouped by categories in a number of stencils (palettes).

On the right side of the workspace you can see the Properties view. The Properties view is used to view and modify the properties of a currently selected model element(s). When you select something – e.g., in the Projects view or in the graphical editor – the Properties view displays the properties of the selection.

 

 New palette view

You can collapse/expand sections by:

Hover the mouse over the vertical navigation bar in the Palette view. You will see the popup list with the palette names. Just choose the palette name from the list.

 New properties view

You can expand and collapse sections by clicking their headers. The parameters have the following icons next to their names:

Dynamically evaluated expression

Static value

Small triangle indicates that you can switch between design-time (static) and run-time (dynamic) values. Example:


    

Here you can enter the code for actions

 Problems view

Problems and Console views are only shown when there issues with building a model, in which case they will appear automatically. You can find these settings in Tools > Preferences > General:

You can open these views anytime from the View menu or by clicking their icons in the status bar:

 Hiding categories of elements in the Graphical Editor

Sometimes you may have tons of graphical elements on the same diagram:

Now you can temporarily hide those elements. Click the icons in the status bar to hide or unhide elements:

Hide Space markup elements

Hide shapes 

Hide SD links

Hide 2D elements

Hide 3D elements

Example:

 Model window border on the agent diagram

Now you know what gets inside the model window just while drawing in the design time.

 Drop-down lists instead of typing

Drop-down lists enable you just to choose the element, while previously you had to type the element name.

Whenever you need to define a dynamically evaluated  expression, switch to the code field.

 Referring to element by a click in the graphical editor

To make a reference to a graphical object (such as a path, a node, an area) in a logical object (such as queue or delay) you simply click the object in the editor.

 Event: New controls for Recurrence time

Now you just choose the required time units from the drop-down list instead of typing: 10*minute(), 12*hour() ...

 Adding shapes to existing group

There are two modes for choosing the group where to add the shape(s):

 Improved Code Completion

Completion suggests only relevant choices now.

 Statechart improvements

Trigger type indicators for transitions:

By timeout

Rate

Condition

Message

Agent arrival

Unconnected transitions are highlighted in red:

 Flowchart blocks connect automatically

When you add blocks, the closest ports get automatically connected, significantly reducing model design time. 

Flowchart block connection settings added in the Preferences:

 Option List

New element Option list for defining agent attributes that have limited choice of alternative options:

 Probability Distribution Wizard

Click the toolbar button when entering the stochastic expression:

The Probability Distribution Wizard will open:

 Custom Distribution

If none of the provided distributions fits the data, you can use the Custom Distribution to define your own one. Distribution can return one of three types:

Discrete

For discrete type, there are two definition modes:

Continuous

Having loaded the data, choose the interpolation:

Options

Defines probabilities for options of the chosen option list

 Agent = Entity = Resource unit

You do not need to learn a dozen of different names and concepts. All active objects are agents now.

 Wizard for creating agent populations

Simply drag the element  Agent from the General palette into the graphical editor. The wizard dialog window will open automatically. Please refer to Creating an agent population for instructions.

 Agent is Environment

No more Environment element.

Every agent acts as environment for agent populations that are on its diagram:

 Agent. New API for communication

New handy functions added:

Functions for Discrete space only:

The old functions are still here:

Example:

people.get(0).sendToRandom(“Hi!”);

Functions sending messages to random agent(s) now prohibit choosing the message sender as the recipient. Read more in Communication.

 Default contact network (connections)

Each agent has a non-removable link Connections – this is for standard networks with bidirectional connections.

Here you define the reaction on the message reception, in its properties:

Links have customizable visual appearance:

 Defining custom inter-agent links (contact networks)

You can add custom links with custom names and visual appearance.

Link can be:

Link can be:

 Link to upper level agent

Agent has non-removable visual link to the upper level agent (to the other agent where this one lives) such as main, city, company.

This is just a pointer, not a link – we need it not to send messages, but to access owner parameters and functions. Now you refer to the owner agent just by pointer name (main, distributor, …)

 Inheritance (visually supported)

The elements of the super class are shown pale (and are not editable here):

 Agent. New API for movement

You make agent move by calling one of its movement functions:

Related functions:

Space markup

Space Markup elements:

 Networks

Network is automatically created when at least two network elements (a path and a node, or two paths) are connected together:

 Converting network shapes to new space markup

Right-click the group of network shapes, choose Convert > Convert to Network Elements:

 Movement functions. New options

moveTo() and moveToInTime() functions provide several notations, enabling defining target location in different ways:

You can define location as:

 New library for discrete event (process) modeling

Process Modeling Library:

"Pull" instead of "Push": natural entity flow

Flowchart objects will stop and wait until the next objects are ready, and "Push" is still available as an option:

Blocks supporting “pull” protocol

Source, Enter, Delay, Pickup, Dropoff, Seize, Batch, Unbatch, Combine.

Selecting the advanced option Forced pushing you turn the Push protocol on for this block:

 Flexible resource management

Resource. Failures/Repairs

Alternative to modeling a failure/repair just with a delay, you can model it with a flowchart describing the process. The flowchart start is defined with the specified ResourceTaskStart block.

Resource. Breaks

  1. Define the breaks pattern with a schedule
  2. Set the priority of the Break task

If preemption is enabled, break will preempt the currently performed task (if allowed in the task properties & the task priority is lower):


Resource. Maintenance

Maintenance can be defined as:


Preparation and wrap-up tasks

These processes do not run in parallel, for example, the preparation process starts only when the entity gets to this Seize block:


Other tasks

You may need to define some other task that cannot be described by previously mentioned task patterns.

First, define the task(s) with the block(s) ResourceTask. Then choose the task(s) in the ResourcePool’s List of tasks:

 Priorities and task preemption policies

When some other task is initiated, you may choose what to do with the task being executed currently:

Blocks supporting preemption options: Seize, Service, Assembler.

 “Internals” of entities defined graphically

 True “physical” connection of conveyors

Define the conveyor parameters in the Properties view:

And then observe the process:

 Creating custom entity / resource types

  1. Drag Entity type / Resource type into the agent diagram.
  2. Choose the animation and fix the parameters using the wizard.
  3. You may add any other elements (statecharts, etc.) on the agent diagram of the new type.

For more details please see Creating custom entity and resource types.

 Modeling warehouse storages

Special space markup shape: PalletRack.

Example of vertical levels animated in 3D:

Similar flowchart blocks for defining the logic:

 RackSystem

RackStore

 RackPick

  Pallet Flow/Gravity Flow Racking Systems

Valid for One rack, two aisles only:

This system uses a slightly inclined rail with rollers that allow pallets to move easily along the sloped plane:

 SelectOutput with the required number of exits

Using SelectOutputIn and a set of SelectOutputOut blocks you can create a quasi-block SelectOutput with the required number of exits. You do not need to connect these blocks together graphically.


 Common Presentation palette for both 2D and 3D

Now there is just one palette Presentation. By default all shapes are shown both in 2D and 3D (Text shapes by default are shown in 2D only (since they are used mostly for decoration)).

 More 3D objects

Hundreds of new ready-to-use 3D objects:

 Paths in 3D

Built-in decoration for:

After you have added path into the graphical editor, select it and go to the section Appearance of its Properties view. Select a suitable path type in Type.

 Predefined light types

3D palette is now a part of Presentation palette. Drag and drop the element Light into graphical editor and go to its Properties view. There you can find a parameter Predefined type wuith the following types: street light, car headlight, daylight, moonlight, custom. If you select a custom type, you can define all settings manually, such as Light source type, Attenuation, etc. Below is the example of using car headlight predefined type:

Please refer to Light 3D for more details.

 Individual Features of a Pedestrian

Since each pedestrian is modeled as a specific object, individual features can be adhered to them. These can be added to them:

These features can be checked during the pathway of a pedestrian throughout a process diagram and affect their behavior.

Please refer to Creating custom pedestrian types for the details.

 Space Markup elements for pedestrian simulation

Wall - Exterior walls, interior walls, guard rails

Rectangular WallWorking spaces

Circular WallColumns, fountains, skating-rinks

Service with linesTurnstiles, cash desk, passport checkpoint

Service with areaElectronic queue (ticket office, bank office, info point)

Attractor - With attractors you can define exact waiting points inside the area

Pathway - With Pathway you may tell pedestrians to follow a specified route

For more information please refer to Pedestrian markup.

 Graphical elements for drawing rail tracks

Rail tracks: auto-connect and auto creation of switches.

Now you just drag Railway tracks on the canvas and get 2D and 3D animation automatically.

 Full collection of rail car 3D models

All types and sizes of US rail cars:

 New time units: months and years

This is essential for System Dynamics modelers.

We use these values:

 Copy any graphical elements as image

  1. Select the elements.
  2. Choose Edit > Copy as Image from the menu.
  3. Paste the image.

 triangularAV() probability distribution function

Generates a sample of the Triangular distribution with mode set to average.

This is just a helper for specifying distribution in the form like "roughly this, +/-20%“.

Parameters:

Is equivalent to: triangular ( average * (1 - variability), average * (1 + variability) )

 Improved API for schedule initialization on startup

Use new constructor and handy methods.

Constructor:

Schedule() – creates empty schedule with no data.

Methods that initialize the schedule:

addInterval() 

addMoment() 

addException()

setFirstDayOfWeek()

setSnapTo() 

setDefaultValue() 

setPeriod() 

setTimeUnits() 

setCalendarType() 

setGlueIntervals()

For more information please refer to Schedule API.

 Fixes and minor improvements

User Interface

Graphical editor

Agents

Connectivity

System Dynamics

General palette

Presentation palette

3D

Controls

Engine

Numerical methods settings moved from experiment to model properties.

Clock element moved to Pictures palette.