If you have transporters of different types in your model with specific custom attributes (speed, charge level, etc.) and you want them to look different at model runtime, you should create custom transporter types and generate transporters of different types in your model. This document describes how to do it.
Now you can specify this transporter type in the flowchart blocks parameters, for instance, in TransporterFleet properties:
Name - The name of the transporter type.
Since AnyLogic generates Java class for each transporter type, you should follow Java naming guidelines. Please, start name with an uppercase letter.
Ignore - If selected, the transporter type is excluded from the model.
Parameters preview properties are available only when this transporter type has any parameters. Here you can rearrange parameters of this transporter. Transporters of this type will list parameters in their property view in this well-defined order.
The parameters in this section are derived from agent type and are rarely used for transporters. For details refer to the Agent article.
Use in flowcharts as - Here you choose the role for this agent in the flowcharts. To enable using this agent as transporter in the blocks of the AnyLogic Material Handling Library, leave the Transporter option selected.
On enter flowchart block - Here you can write the code to be executed when this transporter enters the flowchart.
On exit flowchart block - Here you can write the code to be executed when this transporter exits the flowchart.
On seize resource - Here you can write the code to be executed when this transporter seizes the resource while being in the flowchart.
On release resource - Here you can write the code to be executed when this transporter releases the resource while being in the flowchart.
Length - The length of the transporter.
Width - The width of the transporter.
Height - The height of the transporter.
Initial speed - [Visible if Space type: Continuous or GIS] The speed of the transporter.
Rotate animation towards movement - [Visible if Space type: Continuous or GIS] The heading of the transporter.
Rotate vertically as well (along Z-axis) - If selected, the transporter shape will be headed towards the target during the transporter movement.
The parameters in this section are derived from agent type and are rarely used for transporters. For details refer to the Agent article.
The parameters in this section are derived from agent type and are rarely used for transporters. For details refer to the Agent article.
The parameters in this section are derived from agent type and are rarely used for transporters. For details refer to the Agent article.
Since transporters typically move in the physical space, the dimensions of the transporters are essential to obtain valid simulation results. The size of each transporter is defined by three dimensions (length, width, height), which are set to 1 meter by default. Please refer to the Material item dimensions article to know how to set and adjust transporter dimensions.
Since custom transporters are derived from agent type, it is possible to enrich them with custom variables, parameters, functions, and other elements.
When using a custom transporter in a process flow (for example, when interacting with the transporter with the SeizeTransporter, ReleaseTransporter, and MoveByTransporter blocks), you may need to access these elements in the context of the active transporter. In this case, you cannot directly access the transporter without specifying its type explicitly.
Let’s say we have a custom transporter fleet named AVGs that consists of multiple transporters: the AVG agents. On the AVG agent’s diagram, there is the isBusy Boolean parameter whose value is false by default — but we want to set it to true upon seizing the transporter.
To do this, specify the following as the On seize transporter action in the Actions section of the SeizeTransporter block’s properties:
((AGV)unit).isBusy = false;
Note that we address the agent type — AGV, rather than the transporter fleet AGVs itself.
Use a similar approach to access other elements of a custom transporter type to modify their values, execute functions, and so on.
To learn more about the parameters of custom agents, see the following article: Accessing parameters of custom agents in the flowchart block parameters.