The Multi-Compartment Loading Controller Panel

The Multi-Compartment Loading Controller panel is shown for multi-compartment loading controllers.

The following properties are on the Multi-Compartment Loading Controller panel:

Create Step button

Add a new (un)load step to the controller. The number of steps is unlimited.


Each step can be given a name. This name is not relevant for the operation of the multi-compartment loading controller, they are purely to help you quickly identify the purpose of the step, for example: "Load all compartments" or "Load Product A and B simultaneously".


In the condition field, you can specify an expression that is evaluated for every executer immediately before the step will be started. When the expression evaluates to false, the step will be skipped for this transporter. By default steps are always executed. A common use case for this field is a model with multiple vessel types, carrying different products. In this case you can create a step for each product type, and skip the steps for the vessels that do not have a compartment for that product based on the item type.


The controller option determines which loading controller(s) need to be activated in the current step. This trigger code returns a reference to a single object in the model, or an array of objects. All objects in the array that are not valid loading controllers are ignored, so you can safely return all center objects here, even if one of them is a berth or loading point.

The default options in the list that allow you to select one or more loading controllers by name or center port index are as follows:

  • Object connected to a center port: allows you to select a single center port number and use the object connected to it as the loading controller.
  • Center port by case: Depending on the value of an expression, such as a label or item type, you can select a single center port object.
  • Direct reference: Allows you to directly reference an object in the model, for example model.find("LoadingArm1"). You may use the object sampler to easily find an object in the model.
  • Loading Controller By Name: Brings up a selection panel that shows all valid loading controllers in the model and allows you to select one or - using the Control key while clicking several options - more.

The following options allow you to quickly select multiple loading controllers connected to center ports of the multi-compartment loading controller:

  • All valid center port objects: Activate all loading arms, connected to the center ports of this controller, ignoring any objects that are not valid loading controllers such as the berth or loading point.
  • Range of center port objects: Enter the lower and upper index of a range, and activate all the loading arms connected to center ports in this range.
  • Array of center port objects: Enter a comma-separated list of center ports. In contrast to the range option above, the array can have gaps, for example center ports 1, 2, 3, 5, 6, 8.


Define the delay after this step, before the next step starts. If this is the last step, this field determines the delay before the flow item is released back to the loading point to start its post-processing time.

If the delay is zero, the next step will start immediately after finishing the current step – there is no separate event (in other words: a return value of zero is equivalent to 'No delay', not 'Delay 0').