PedAreaDescriptor


This block allows to define rules and/or restrictions on pedestrians being inside some particular area. Allows to modify pedestrians speed and define maximum speed.

You can define the throughput for the area: maximum number of pedestrians that can enter the area per model time unit (the model time unit is set up in the general properties of the model). This can be needed e.g. to model a revolving door.

Demo model: Sloped Area

You can use PedAreaDescriptor block to define how pedestrian speed changes when they are on the staircase (defined with a sloped area):

Demo model: Stairs

Parameters

Pedestrian type [dynamic]
Type of pedestrians residing in the area. Select the actual pedestrian type here if the pedestrians are of a custom type and you need to access pedestrian attributes from this block.
Default value: Agent
Area
Choose the markup element area that geometrically defines the area you configure with this block. 
Syntax: AreaNode locationArea
Speed is limited
If the checkbox is selected (true), speed limitation inside the area is allowed.
Name: speedIsLimited Type: boolean
Change value dynamically: set_speedIsLimited(new value)
Default value: false
Maximum speed
[Visible if Speed is limited is selected] Defines maximum speed for pedestrians inside the area. All pedestrians moving faster than the specified value will be slowed down. All other pedestrians keep their speed.
Name: maximumSpeed Type: double
Change value dynamically: set_maximumSpeed(new value)
Speed is multiplied
If the checkbox is selected (true), speed inside the area is multiplyed by a specified factor.
Use this feature to simulate stairs and other places where all pedestrians change their speed.
Name: speedIsMultiplied Type: boolean
Change value dynamically: set_speedIsMultiplied(new value)
Default value: false
By factor of
[Visible if Speed is multiplied is selected] Speed factor that is applied to all pedestrians within the area. When value is 1.0, nothing happens.
Name: speedFactor Type: double
Change value dynamically: set_speedFactor(new value)
Default value: 1.0
Is moving
If the checkbox is selected (true), this area defines a "moving ground".
Name: isMoving Type: boolean
Change value dynamically: set_isMoving(new value)
Default value: false
At speed of
[Visible if Is moving is selected] Speed of the moving ground.
Name: movingSpeed Type: double
Change value dynamically: set_movingSpeed(new value)
Default value: 1.0
Enable access control
Allows "closing" area border (like walls). All pedestrians outside the area will be blocked from entering area. All pedestrians inside area can leave area.
Name: enableAccessControl Type: boolean
Change value dynamically: set_enableAccessControl(new value)
Default value: false
Throughput
Here you can define the throughput for the area: maximum number of pedestrians that can enter the area per model time unit (the model time unit is set up in the general properties of the model). This can be needed e.g. when the area defines an escalator, or a revolving door.
Name: throughput Type: double
Change value dynamically: set_throughput(new value)
Default value: +infinity
Actions
On enter [code]
Code executed when the pedestrian enters the area.
Local variable: T ped - the pedestrian.
On exit [code]
Code executed when the pedestrian exits the area.
Local variable: T ped - the pedestrian.

Functions

double area() - Returns area of this area, in square meters. 

double density() - Returns average value for density inside the area, measured in pedestrians per square meter.

boolean isOpen() - Returns true or false depending on whether area is open or closed.

void setOpen(boolean isOpen) - Controls area border to make it penetrable by pedestrian from outside area. Setting parameter to true opens area. Setting parameter to false closes area.

boolean contains(T ped) - Returns true, if the area contains the specified pedestrian, otherwise returns false.

int size() - Returns number of pedestrians inside the area.

Set<T> getPeds() - Returns a non-modifiable collection of pedestrians currently located in this block.