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 - Географ. место
Узел [динамический]
[Параметр виден, если Место копии: Узел сети / ГИС] Узел сети, ГИС точка или ГИС регион, куда отправляются агенты, созданные этим блоком.
Локальные переменные:
TCopy agent - агент-копия
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
Аттрактор [динамический]
[Параметр виден, если Место копии: Аттрактор] Аттрактор, куда отправляются агенты, созданные этим блоком.
Тип значения: Attractor
Локальные переменные:
TCopy agent - агент-копия
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
Координаты X, Y, Z [динамический]
[Параметр виден, если Место копии: Точка] Координаты точки.
Тип значения: double
Локальные переменные:
TCopy agent - агент-копия
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
... расположена [динамический]
[Параметр виден, если Место копии: Точка (x, y, z)] Здесь можно выбрать, где будет находиться точка, в которой окажется созданная копия: на уровне или в сети.
Тип значения: boolean destinationInNetwork
Значение по умолчанию: false
Уровень [динамический]
[Параметр виден, если ...расположена: на уровне] Уровень, на котором расположена точка, куда будет помещена созданная копия.
Тип значения: Level
Локальная переменная: TCopy agent - агент-копия
Сеть [динамический]
[Параметр виден, если ...расположена: в сети] Сеть, в которой расположена точка, куда будет помещена созданная копия.
Тип значения: INetwork
Локальная переменная: TCopy agent - агент-копия
Широта, Долгота [динамический]
[Параметр виден, если Место копии: (широта, долгота)] Координаты широты и долготы точки на ГИС карте, где появляются агенты.
Тип значения: double
Локальные переменные:
TCopy agent - агент-копия
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
Имя места [динамический]
[Параметр виден, если Место копии: Географ. место] Имя конкретного места на карте ГИС, где будут появляться агенты. Укажите имя как текст в кавычках, например, "London". ГИС карта выполнит поиск места по этому имени. Первый результат в списке результатов ГИС поиска будет использован в качестве местоположения, куда будут помещены агенты.
Тип значения: String
Локальные переменные:
TCopy agent - агент-копия
int indexCopy - номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
Скорость [динамический]
[Параметр виден, если Место копии задано одной из опций] Скорость движения агентов, которых производит этот блок.
Тип значения: double
Значение по умолчанию: 10 м/с
Локальные переменные:
T 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
Выходной порт для агентов-копий, создаваемых этим блоком.