Dropoff

Удаляет избранных агентов из поступающего агента-контейнера и пересылает их далее через порт outDropoff. Так же, как и блок Pickup, который используется для добавления агентов в агента-контейнер, блок Dropoff извлекает агентов согласно заданному режиму: либо все агенты, либо определенное их количество, либо те, для которых будет выполняться заданное условие (которое может зависеть как от агента-контейнера, так и от содержащихся в нем агентов). Вся операция занимает нулевое время.

Обратите внимание, что на момент проверки условия агент все еще будет в контейнере, но при выполнении действия При оставлении агент уже будет удален из агента-контейнера.

Вы можете управлять процессом удаления агентов путем задания различных Условий извлечения агентов, например, чтобы извлекать только те агенты типа Passenger, место назначения destination (заданное с помощью параметра типа агента) которых равно here, укажите Passenger в качестве типа агента-контейнера и напишите условие извлечения агентов: agent.destination == here.

Если после извлечения необходимых вам агентов вам не нужно сохранять агента-контейнер, вы можете использовать вместо блока Dropoff блок Unbatch.

Демо модель: Pickup and Dropoff

Параметры

Тип контейнера [динамический]
Тип агентов-контейнеров, поступающих в блок через порт in. Упоминается ниже как: TContainer container.
Значение по умолчанию: - Agent
Тип элемента [динамический]
Тип агентов, извлекаемых из агента-контейнера и покидающих блок через порт outDropoff. Упоминается ниже как: T agent.
Значение по умолчанию: - Agent
Оставлять
Определяет режим извлечения агентов из агента-контейнера: должен ли блок извлекать Все доступные агенты, либо их Заданное количество (если доступно), либо извлекать тех агентов, для которых выполняется заданное условие (Пока выполняется условие).
Имя: dropoffType
Изменить значение: set_dropoffType(новое условие)
Значение по умолчанию: Пока выполняется условие
Допустимые значения:
Dropoff.ALL - Все доступные агенты
Dropoff.QUANTITY - Заданное количество (если доступно)
Dropoff.BY_CONDITION - Пока выполняется условие
Условие [динамический]
[Виден, если Оставлять: Пока выполняется условие] Условие, вычисляемое для каждого агента, содержащегося в агенте-контейнере, и определяющее, должен ли данный агент быть извлечен из контейнера. Условие может зависеть как от агента-контейнера, так и от содержащихся в нем агентов-"кандидатов" на извлечение.
Тип значения: boolean
Локальные переменные:
T agent - агент-"кандидат" на извлечение из контейнера
TContainer container - агент-контейнер
Значение по умолчанию: true (из контейнера будут извлекаться все агенты)
Количество [динамический]
[Виден, если Оставлять: Заданное количество (если доступно)] Выражение, возвращающее количество агентов, которое должно быть извлечено из агента-контейнера (если в нем будет содержаться такое количество агентов).
Тип значения: int
Локальная переменная: TContainer container - агент-контейнер.
Значение по умолчанию: 1
Специфические
Выталкивать агентов
Если опция выбрана (true), то агенты, созданные этим блоком, будут немедленно вытолкнуты дальше независимо от состояния следующего блока. Если опция не выбрана, агенты будут не выталкиваться, а выходить постепенно: только когда следующий блок готов принять еще одного агента, он запрашивает его у этого блока, и тогда агент проходит дальше.
Синтаксис: boolean pushProtocol
Значение по умолчанию: false
Действия
При входе [код]
Код, выполняемый, когда агент-контейнер поступает в блок.
Локальная переменная: TContainer container - агент-контейнер.
При оставлении [код]
Код, выполняемый для каждого агента, извлекаемого из контейнера.
Локальные переменные:
T agent - извлеченный из контейнера агент.
TContainer container - агент-контейнер.
При выходе [код]
Код, выполняемый, когда агент-контейнер покидает блок.
Локальная переменная: TContainer container - агент-контейнер.
При уходе по оставлению [код]
Код, выполняемый для каждого агента, извлекаемого из контейнера, когда он покидает блок.
Локальные переменные:
T agent - извлеченный из контейнера агент.
TContainer container - агент-контейнер.

Порты

in
Входной порт.
out
Выходной порт.
outDropoff
Выходной порт для агентов, извлеченных из агента-контейнера.