Attractors in nodes


Attractors inside a node

Attractor allows controlling agent's location inside a rectangular node or a polygonal node.

 Attractors can be put only inside nodes or areas.

The agent orientation in the attractor

The attractor's arrow defines the orientation for agents located in an attractor. This is generally important when you have 2D or 3D animation and want the agent animation shapes to face the exact way (e.g. you may want customer to face ATM).

Check out the use of attractors's orientation in the process-centric tutorial:

Tutorials > Bank Office > Phase 3. Adding tellers > Set up space markup for the tellers > Step 5. We will use attractors to define the tellers.

You can change Orientation in attractor's properties, or visually define the angle by moving the arrow's end point in the graphical editor:

You can add attractors one by one, however, if attractors form a regular structure, it makes sense to add several attractors once using the special wizard.

 To draw one attractor inside the node

  1. Drag the  Attractor element from the  Space Markup palette inside the node.

 To draw several attractors

  1. Double-click Attractor in the  Space Markup palette. Its icon will turn into . Now you can add attractors by clicking inside of nodes.
  2. You add one attractor each time you click inside the node. All new attractors have the default orientation as shown in the figure above. However, you can change attractor's orientation while drawing it: do not release the mouse button after the click, but move it around until you get the orientation you need.  

  1. To exit the drawing mode, click some area in the graphical editor outside the node.
  2. After you finish drawing, all added attractors will be selected with their properties open. You may find this useful for defining orientation for several attractors at once:

 To add several attractors using the wizard

  1. Click the node in the graphical diagram.
  2. In the node properties, click Attractors... button. You will see Attractors dialog box.
  3. In the dialog, specify how many attractors you want to create. You may do this by expliclitly specifying the Number of attractors, or filling the whole node with attractors, preserving the specified Space between attractors, or placing them in a Grid with cells of specified width and height.

  1. If you need to restructure attractors, select the option Delete all existing attractors and also define creation mode before you click OK. If you wish to clear all attractors from the node without creating new ones there, select this option and specify 0 in creation mode Number of attractors, then click OK.

Attractors selection order

When you add attractors (either manually or using the wizard), their creation order also defines the sequence of the agents' movement destinations. You can verify the creation order by looking at the names of the attractors (attractor1attractor2, ...). Agents will select attractors one by one according to this order. In case you need to change the order, you should change the positions of the corresponding attractors but not their names.

Properties

General

Name – The name of the attractor. The name is used to identify and access the attractor from code.

Ignore – If selected, the attractor is excluded from the model.

Visible on upper level – If selected, the attractor is visible on the upper level where this agent lives. 

Position and size

X – X-coordinate of the attractor.

Y – Y-coordinate of the attractor.

Orientation – Here you can choose where agents should be directed when reaching/waiting at the attractor.

Functions

You can dynamically modify shape properties at model runtime using the following API.
Position

Function

Description

double getX()

double getY()

double getZ()

Returns the X (Y, Z) absolute coordinate of the attractor. 

The Z coordinate is defined by the corresponding coordinate of the node / area.

double getRelativeX()

double getRelativeY()

Returns the X (Y) coordinate of the attractor relative to the node / area.

Orientation

Function

Description

double getOrientation()

Returns the attractor's orientation in radians (in the clockwise direction).