Split


Для каждого поступающего агента (будем называть его агентом-оригиналом) объект создает заданное число новых агентов (будем называть их агентами-копиями) и пересылает их дальше через порт outCopy.

Создаваемые объектом агенты могут быть любого типа, они могут быть копиями поступившего в объект агента, а могут и как-то иначе зависеть от его содержимого. Вы сами должны задавать свойства создаваемых агентов (возможно, копируя значения каких-то полей агента-оригинала). Количество создаваемых агентов может изменяться динамически.

Вся операция выполняется в течение нулевого времени – как только агент входит в объект Split, он тут же покидает его вместе с созданными агентами.

Есть два места, где вы можете проинициализировать нового агента: параметры Новый агент и действие При выходе копии. В кодах обоих этих параметров агент-оригинал доступен как original, а номер созданного агента - как indexCopy. Если вы хотите отслеживать взаимосвязь агента-оригинала и копий этого агента, то вы можете создать у типа агента параметр id и присваивать значение идентификатора оригинала создаваемым агентам. Если впоследствии вы захотите присоединить агентов-копии к оригиналу, то вы сможете воспользоваться этим идентификатором в качестве критерия сравнения агентов. Реальное "воссоединение" может быть реализовано с помощью нескольких объектов Match или с помощью специального кода. В простейшем случае, когда создается только одна копия каждого оригинала, и их порядок не меняется по ходу продвижения по потоковой диаграмме, вы можете собрать одного агента из двух с помощью объекта Combine.

Параметры

Количество копий [динамический]
Выражение, определяющее количество создаваемых агентов-копий.
Тип значения: int
Значение по умолчанию: 1
Локальная переменная: T agent - агент-оригинал.
Новый агент (копия) [динамический]
Тип нового агента, создаваемого этим блоком (или выражение, определяющее, какой агент будет создаваться). Ниже этот тип упоминается как TCopy.
Тип значения: Agent
Локальные переменные: T original - агент-оригинал.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
Изменить размеры [динамический]
Если опция выбрана (true), можно будет изменить размеры агентов, создаваемых этим блоком, задав соответствующие значения в параметрах Длина, Ширина и Высота ниже.
Тип значенияboolean
Локальные переменные: TCopy agent - новый агент
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
T original - агент-оригинал
Длина [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Новая длина создаваемого агента.
Тип значенияdouble
Локальные переменные: TCopy agent - новый агент
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
T original - агент-оригинал 
Ширина [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Новая ширина создаваемого агента.
Тип значенияdouble
Локальные переменные: TCopy agent - новый агент
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
T original - агент-оригинал 
Высота [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Новая высота создаваемого агента.
Тип значенияdouble
Локальные переменные: TCopy agent - новый агент
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
T original - агент-оригинал
Место копии
Здесь задается местоположение созданных в этом блоке агентов-копий. Выберите либо опцию Не задано, либо одну из следующих опций:
Узел сети / ГИС - агенты будут помещены в заданный узел сети, в ГИС точке или в ГИС регионе.
Аттрактор - агенты будут появляться в заданном аттракторе.
Точка - точка в координатах x, y, z, в которой будут появляться агенты.
(Широта/долгота) - агенты появляются в точке на карте с заданными координатами Широты и Долготы.
Географ. место - агенты появляются в определенном месте на карте. Вы можете задать это местоположение в параметре Имя места.
Имя: locationType
Допустимые значения: Split.LOCATION_NOT_SPECIFIED - Не задано
Split.LOCATION_XYZ - Точка
Split.LOCATION_NODE - Узел сети
Split.LOCATION_ATTRACTOR - Аттрактор
Split.LOCATION_LATLON - (Широта/долгота)
Split.LOCATION_GEO_PLACE - Географ. место
Скорость [динамический]
[Параметр виден, если Место копии задано одной из опций] Скорость движения агентов, которых производит этот блок.
Тип значения: double
Значение по умолчанию: 10 м/с
Локальные переменные: T agent - агент.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
Координаты X, Y, Z [динамический]
[Параметр виден, если Место копии: Точка] Координаты точки.
Тип значения: double
Локальные переменные: TCopy agent - агент-копия.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
... в сети
[Параметр виден, если Место копии: Точка] Если эта опция выбрана (true), агенты добавляются в сеть, которую вы можете выбрать в поле Сеть.
Синтаксис: boolean locationXYZInNetwork
Сеть [динамический]
[Параметр виден, если выбрана опция ... в сети] Сеть, куда отправляются агенты, созданные этим блоком.
Тип значения: Network
Локальные переменные: TCopy agent - агент-копия.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
Узел [динамический]
[Параметр виден, если Место копии: Узел сети / ГИС] Узел сети, ГИС точка или ГИС регион, куда отправляются агенты, созданные этим блоком.
Локальные переменные: TCopy agent - агент-копия.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
Аттрактор [динамический]
[Параметр виден, если Место копии: Аттрактор] Аттрактор, куда отправляются агенты, созданные этим блоком.
Тип значения: Attractor
Локальные переменные: TCopy agent - агент-копия.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
Широта, Долгота [динамический]
[Параметр виден, если Место копии: (широта, долгота)] Координаты широты и долготы точки на ГИС карте, где появляются агенты.
Тип значения: double
Локальные переменные: TCopy agent - агент-копия.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
Имя места [динамический]
[Параметр виден, если Место копии: Географ. место] Имя конкретного места на карте ГИС, где будут появляться агенты. Укажите имя как текст в кавычках, например, "London". ГИС карта выполнит поиск места по этому имени. Первый результат в списке результатов ГИС поиска будет использован в качестве местоположения, куда будут помещены агенты.
Тип значения: String
Локальные переменные: TCopy agent - агент-копия.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
Специфические
Добавить копии в
Здесь вы можете указать, куда помещаются агенты, созданные этим блоком: в популяцию по умолчанию или в другую популяцию (указанную ниже в поле Популяция агентов).
Синтаксис: boolean addToCustomPopulation
Популяция агентов [динамический]
[Параметр виден, если выбрана опция Добавить копии в] Название популяции агентов, куда помещаются агенты, созданные этим блоком.
Тип значения: AgentList
Локальные переменные: TCopy agent - новый агент
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
T original - агент-оригинал
Действия
При подходе ко входу [код]
Код, выполняемый, когда агент-оригинал поступает в объект.
Локальная переменная: T agent - агент.
При выходе копии [код]
Код, выполняемый, когда созданный агент покидает объект.
Локальные переменные: TCopy agent - новый агент.
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент).
T original - агент-оригинал.
При выходе оригинала [код]
Код, выполняемый, когда агент-оригинал покидает объект.
Локальная переменная: T agent - поступивший в объект исходный агент (оригинал).

Порты

in
Входной порт.
out
Выходной порт для агентов-оригиналов.
outCopy
Выходной порт для агентов-копий, создаваемых этим объектом.