AnyLogic
Развернуть
Размер шрифта

Функции агента

Параметры
Функция Описание
<T> T getParameter(String name) Возвращает значение параметра с заданным именем name.
Вызывает сообщение об ошибке, если параметра с таким именем нет.

name — имя статического параметра
String[] getParameterNames() Возвращает массив с именами всех статических параметров агента.
boolean setParameter(String name, Object value, boolean callOnChange) Задает значение value для параметра с именем name. Возвращает true, если операция прошла успешно; в противном случае возвращает false.

name — имя статического параметра
value — новое значение
callOnChange — передайте значение true для этого аргумента, чтобы иметь возможность выполнить дополнительный написанный вами код при изменении значения параметра
void setParametersToDefaultValues() Задает для всех статических параметров их значения по умолчанию. Эту функцию можно использовать в нестандартных экспериментах, чтобы в некоторых случаях облегчить настройку агента верхнего уровня.
void markParametersAreSet() Используйте эту функцию, чтобы помечать всех агентов, созданных с помощью конструктора без аргументов, таким образом, словно их параметры уже заданы. Это предотвратит инициализацию параметров в первом месте, куда эти агенты отправятся (например, в библиотечном блоке, в популяции и так далее).
Размеры

Эти функции нужны для работы с элементами, которым для обработки агента необходима информация о его размерах, например, для работы с конвейерами.

Функция Описание
void setDimensions(double lengthInMeters, double widthInMeters, double heightInMeters) Задает длину, ширину и высоту агента в метрах.

lengthInUnits — новое значение длины агента
widthInUnits — новое значение ширины агента
heightInUnits — новое значение высоты агента
void setDimensions(double lengthInUnits, double widthInUnits, double heightInUnits, LengthUnits units) Задает длину, ширину и высоту агента в заданных единицах измерения units.

lengthInUnits — новое значение длины агента
widthInUnits — новое значение ширины агента
heightInUnits — новое значение высоты агента
units — константа, задающая единицы измерения длины
double getHeight() Возвращает высоту агента в метрах.
double getHeight(LengthUnits units) Возвращает высоту агента в заданных единицах измерения units.

units — константа, задающая единицы измерения длины
void setHeight() Задает высоту агента в метрах.
void setHeight(double heightInUnits, LengthUnits units) Задает высоту агента в заданных единицах измерения units.

heightInUnits — новое значение высоты агента
units — константа, задающая единицы измерения длины
double getLength() Возвращает длину агента в метрах.
double getLength(LengthUnits units) Возвращает длину агента в заданных единицах измерения units.

units — константа, задающая единицы измерения длины
void setLength(double lengthInUnits) Задает длину агента в метрах. Это касается только тех агентов, которые обрабатываются блоками Библиотеки Моделирования Процессов и Библиотеки Производственных Систем. Чтобы изменить размеры пешехода, машины и других агентов, работающих в специализированных библиотеках, используйте соответствующие функции этих агентов, например, setDiameter() в случае с пешеходами.

lengthInUnits — новое значение длины агента
void setLength(double lengthInUnits, LengthUnits units) Задает длину агента в заданных единицах измерения units. Это касается только тех агентов, которые обрабатываются блоками Библиотеки Моделирования Процессов и Библиотеки Производственных Систем. Чтобы изменить размеры пешехода, машины и других агентов, работающих в специализированных библиотеках, используйте соответствующие функции этих агентов, например, setDiameter() в случае с пешеходами.

lengthInUnits — новое значение длины агента
units — константа, задающая единицы измерения длины
double getWidth() Возвращает ширину агента в метрах.
double getWidth(LengthUnits units) Возвращает ширину агента в заданных единицах измерения units.

units — константа, задающая единицы измерения длины
void setWidth(double widthInUnits) Задает ширину агента в метрах.

widthInUnits — новое значение ширины агента
void setWidth(double widthInUnits, LengthUnits units) Задает ширину агента в заданных единицах измерения units.

widthInUnits — новое значение ширины агента
units — константа, задающая единицы измерения длины
Анимация
Функция Описание
Color getColor() Возвращает цвет той фигуры анимации агента, которая используется по умолчанию. Цвет можно задать с помощью функции setColor(Color). В противном случае он будет выбран случайным образом.
В случае нестандартного типа агента используйте функцию getFillColor() или любые подобные ей функции фигуры анимации.
void setColor(Color color) Задает цвет той фигуры анимации агента, которая используется по умолчанию. Эту функцию можно использовать, если агент был создан с помощью блока Source (PedSource, и так далее), где в свойстве Новый агент (Новый пешеход и так далее) была выбрана опция по умолчанию Агент. Также функцию можно использовать, если агента создали с помощью конструктора new Agent().
В случае нестандартного типа агента используйте функцию setFillColor() или любые подобные ей функции фигуры анимации.

color — новый цвет
void highlight(boolean yes) Включат или выключает подсветку анимации этого агента.

yes — булево значение. Передайте true, чтобы включить подсветку; передайте false, чтобы ее выключить.
Масштаб
Функция Описание
Scale getScale() Возвращает масштаб пространства вашего агента. Значение по умолчанию — 10 пикселей на метр.
double toLengthUnits(double lengthInPixels, LengthUnits units) Конвертирует заданную длину в пикселях в длину в единицах измерения длины с учетом масштаба агента, который используется как "пространство".

lengthInPixels — длина в пикселях; units — константа, задающая единицы измерения длины
double toPixels(double lengthInUnits, LengthUnits units) Конвертирует длину в заданных единицах измерения длины в длину в пикселях с учетом масштаба агента, который используется как "пространство".

lengthInUnits — длина в единицах измерения длины; units — константа, задающая единицы измерения длины
Агент в диаграмме процесса
Функция Описание
FlowchartBlock currentBlock() Возвращает тот блок диаграммы процесса, в котором сейчас находится ваш агент.
double getBlockEnterTime() Возвращает время, когда агент поступил в тот блок диаграммы процесса, где он сейчас находится. Если агент еще не поступил в диаграмму процесса, функция возвращает Double.NaN: это значит, что результат вызова функции не валиден.
double getFlowchartEntryTime() Возвращает время, когда агент поступил в первый блок диаграммы процесса. Если агент еще не поступил в диаграмму процесса, функция возвращает Double.NaN: это значит, что результат вызова функции не валиден.
Ресурсы
Функция Описание
<T extends Agent> List<T> resourceUnits() Возвращает список всех ресурсных единиц, захваченных агентом, или пустой список, если агент не захватил ни один ресурс.
Agent resourceUnitOfPool(Agent pool) Возвращает первую ресурсную единицу из заданного блока ResourcePool среди захваченных агентом ресурсных единиц или null, если агент еще не захватил ни один ресурс из этого блока.

pool — блок ResourcePool
<T extends Agent> List<T> resourceUnitsOfPool(Agent pool) Возвращает список ресурсных единиц из заданного блока ResourcePool, которые сейчас захвачены вашим агентом.

pool — блок ResourcePool
<T extends Agent> List<T> resourceUnitsOfSeize(Agent seize) Возвращает список ресурсных единиц, которые сейчас захвачены вашим агентом в заданном блоке Seize.

seize — блок Seize
Коммуникация агентов

Функции агента, отвечающие за коммуникацию между агентами, подробно описаны в статье Коммуникация между агентами.

Связи
Функция Описание
<T extends Agent> List<T> getConnections() Возвращает коллекцию агентов, связанных с вашим агентом двусторонними связями или пустую коллекцию, если таких агентов нет. Эту коллекцию нельзя изменять.
int getConnectionsNumber() Возвращает количество агентов, связанных с вашим агентом.
Agent getConnectedAgent(int index) Возвращает агента с заданным индексом, связанного с вашим агентом.

index — индекс связанного агента
Agent getRandomConnectedAgent() Возвращает случайно выбранного агента, связанного с вашим агентом.
boolean isConnectedTo(Agent a) Проверяет, связан ли ваш агент с заданным агентом. Если связь есть, возвращает true; в противном случае возвращает false.

a — другой агент
boolean connectTo(Agent a) Создает двустороннюю связь между вашим агентом и заданным агентом, после чего возвращает true. Возвращает сообщение об ошибке, если вы пытаетесь связать агента с сами собой. Ничего не делает и возвращает false, если агенты уже связаны.

a — другой агент
void disconnectFrom(Agent a) Уничтожает связь между вашим агентом и заданным агентом.

a — другой агент
void disconnectFromAll() Разрушает все связи вашего агента с другими агентами.
Сеть связей между агентами
Функция Описание
NetworkType getNetworkType() Возвращает тип сети. Обратите внимание, что этот тип мог быть не применен на самом деле.
double getNetworkConnectionRange() Возвращает диапазон связей вашего агента. Применимо для типа сети согласно расстоянию. В случае ГИС-пространства расстояние измеряется в метрах.
double getNetworkConnectionsPerAgent() Возвращает среднее или точное количество связей одного агента. Применимо для типов сети случайное, решеточно упорядоченное кольцо и малый мир.
double getNetworkNeighborLinkProbability() Возвращает вероятность того, что связанный агент является соседом вашего агента. Применимо для типа сети малый мир.
int getNetworkScaleFreeM() Возвращает количество связей в типе сети безразмерная.
void applyNetwork() Уничтожает все существующие связи и устанавливает новую сеть связей в соответствии с текущими настройками сети.
void applyNetwork(Random r) Уничтожает все существующие связи и устанавливает новую сеть связей в соответствии с текущими настройками сети, используя генератор случайных чисел, если того требует тип сети.
void setNetworkAllInRange(double connectionRange) Задает новый тип сети "согласно расстоянию": связи образуют только те агенты, расстояние между которыми меньше или равно заданной величине connectionRange. Этот тип сети возможен только в непрерывном пространстве. После вызова этой функции вызовите также функцию applyNetwork(), чтобы создать связи в соответствии с типом сети.

connectionRange — максимально допустимое расстояние между агентами
void setNetworkRandom(double connectionsPerAgent) Задает новый тип сети "случайная" с заданным средним количеством связей на одного агента. После вызова этой функции вызовите также функцию applyNetwork(), чтобы создать связи в соответствии с типом сети.

connectionsPerAgent — среднее количество связей на одного агента
void setNetworkRingLattice(int connectionsPerAgent) Задает новый тип сети "решеточно упорядоченное кольцо". Все агенты должны располагаться в кольце в естественном порядке и каждый агент при этом связан с заданным количеством ближайших соседей. После вызова этой функции вызовите также функцию applyNetwork(), чтобы создать связи в соответствии с типом сети.

connectionsPerAgent — количество связей на одного агента (четное число)
void setNetworkScaleFree(int m) Задает новый тип сети "безразмерная". Такие сети строятся в соответствии с правилами, описанными в книге Barabasi, A.L. and R. Albert. 1999. Emergence of scaling in random networks. Science 286(5439): 509-512. После вызова этой функции вызовите также функцию applyNetwork(), чтобы создать связи в соответствии с типом сети.

m — количество связей в сети. Агент с индексом m скорее всего будет являться хабом.
void setNetworkSmallWorld(int connectionsPerAgent, double neighborLinkProbability) Задает новый тип сети "малый мир". Такую сеть можно получить, заменив некоторые связи в сети типа "решеточно упорядоченное кольцо" на дальние. После вызова этой функции вызовите также функцию applyNetwork(), чтобы создать связи в соответствии с типом сети.

connectionsPerAgent — количество связей на одного агента (четное число)
neighborLinkProbability — вероятность связи с соседями
void setNetworkUserDefined() Задает новый тип сети "задается пользователем". Последующий вызов функции applyNetwork() не создаст никаких связей между агентами. Это тип сети, доступный по умолчанию.
Пространство
Функция Описание
SpaceType getAgentSpaceType() Возвращает тип пространства вашего агента, если для этого агента есть данные о пространстве. Возвращает SPACE_UNDEFINED, если таких данных для агента нет.
SpaceType getEnvironmentSpaceType() Возвращает тип пространства вашего агента, если агент является средой, для которой есть данные о пространстве. Возвращает SPACE_UNDEFINED, если таких данных для агента нет.
Agent getSpace() Возвращает агента, который является пространством, в котором живет ваш агент.
void setSpace(Agent space) Задает агента space, который будет предоставлять пространство для вашего агент. Не используйте для этого движущихся агентов. После выполнения функции координаты и вращение агентов останутся прежними.

space — агент, который будет предоставлять пространство для вашего агента
void setupSpace(AbstractShapeGISMap gisMap) Настраивает в среде вашего агента ГИС-пространство на основании заданной ГИС-карты gisMap. Эту функцию можно вызывать только в том случае, если в среде вашего агента пусто. Возвращает ошибку, если тип пространства этой среды — не ГИС.

gisMap — ГИС-карта, которая будет использоваться в этой среде; этот аргумент не может быть равен null
void setupSpace(double width, double height) Задает размеры вашего пространства. Размеры используются только в том случае, когда применяются разные разметки пространства, и не ограничивают местоположение или движение агентов. Эту функцию можно вызывать только в том случае, если в среде вашего агента пусто.

width — ширина пространства
height — высота пространства
void setupSpace(double width, double height, double zHeight) Задает размеры вашего пространства. Размеры используются только в том случае, когда применяются разные разметки пространства, и не ограничивают местоположение или движение агентов. Эту функцию можно вызывать только в том случае, если в среде вашего агента пусто.

width — ширина пространства
height — высота пространства
zHeight — высота пространства по оси Z
void setupSpace(double width, double height, int rows, int columns, NeighborhoodType neighborhoodType) Задает дискретный тип пространства с заданными размерами и моделью соседства. Ширина ячейки в таком пространстве будет равна ширине всего пространства разделенной на количество столбцов, а высота — высоте пространства разделенной на количество рядов. Эту функцию можно вызывать только в том случае, если в среде вашего агента пусто.

width — ширина пространства
height — высота пространства
rows — количество рядов в пространстве
columns — количество столбцов в пространстве
neighborhoodType — модель соседства (модель Евклида или модель Мура)
Движение

Подробное описание функций агента, отвечающих за движение, находится в статье Движение агента.

Сети для построения маршрутов
Функция Описание
INetwork[] getNetworks() Возвращает массив сетей, расположенных в этом агенте или пустой массив, если в агенте нет ни одной сети.
ConveyorNetwork[] getConveyorNetworks() Возвращает массив конвейерных сетей, расположенных в этом агенте или пустой массив, если в агенте нет таких сетей.
RailwayNetwork[] getRailwayNetworks() Возвращает массив ж/д сетей, расположенных в этом агенте или пустой массив, если в агенте нет таких сетей.
RoadNetwork[] getRoadNetworks() Возвращает массив дорожных сетей, расположенных в этом агенте или пустой массив, если в агенте нет таких сетей.
INode getNetworkNode() Возвращает узел сети, в котором сейчас находится ваш агент. Применимо только для агентов в непрерывном пространстве.
Уровни
Функция Описание
getLevel() Возвращает уровень, на котором живет ваш агент. Применимо только для агентов в непрерывном пространстве.
Level[] getLevels() Возвращает массив уровней в вашем агенте.
setLevel(Level level) Размещает агента на заданном уровне. Применимо только для агентов в непрерывном пространстве.

level — уровень, на котором будет жить ваш агент
Диаграмма состояний
Функция Описание
boolean inState(IStatechartState<?,?> state) Возвращает true, если соответствующая диаграмма состояний этого агента находится в указанном состоянии: либо прямо в этом состоянии, если речь идет о простом состоянии, либо в одном из внутренних, если речь идет о сложном состоянии.

state — состояние
Уведомления об изменениях
Функция Описание
void onChange() Уведомление, которое обозначает, что какие-то данные агента могли измениться в результате некоего события. Возможные причины:
1. Перерасчет условий в событиях и переходах диаграммы состояний, которые срабатывают по условию
2. Перерасчет интенсивностей в событиях и переходах диаграммы состояний, которые срабатывают с заданной интенсивностью
По умолчанию эта функция вызывается, если агент создает событие или если один из портов агента получает сообщение. Это можно предотвратить, вызвав функцию nothingChanged().
Также вы можете вызвать эту функцию вручную, если хотите, чтобы какой-то конкретный агент заметил изменение даже в том случае, если не сработало событие.
void nothingChanged() Если вызвать эту функцию при срабатывании события, то исполнительный модуль не будет вызывать функцию onChange() агента, в котором произошло событие. Это сработает только для одного события. Вызов функции не влияет на остальных агентов, для которых либо пользователь вызвал вручную функцию onChange(), либо она сработала по каким-то другим причинам.
Агенты-контейнеры

По умолчанию у каждого агента есть внутренняя коллекция contents(), похожая на контейнеры, которые создаются в блоках Batch и Pickup Библиотеки Моделирования Процессов. Функции, перечисленные в этом разделе, помогут вам добавлять других агентов в коллекцию contents() и удалять их по своему желанию.

Функция Описание
<T extends Agent> List<T> contents() Возвращает список агентов, которые хранятся во внутренней коллекции contents() вашего агента.
addAgentToContents(Agent agent) Добавляет заданного агента во внутреннюю коллекцию contents() вашего агента.

agent — агент, которого нужно добавить во внутреннюю коллекцию
removeAgentFromContents(Agent agent) Удаляет заданного агента из внутренней коллекции contents() вашего агента.

agent — агент, которого надо удалить из внутренней коллекции
Шаги синхронизации
Функция Описание
boolean areStepsEnabled() Проверяет, включены ли временные шаги. Если включены, возвращает true. В противном случае возвращает false.
void enableSteps(double stepDuration) Включает дискретные временные шаги с заданной длительностью.

stepDuration — длительность временного шага
void disableSteps() Выключает временные шаги
Управление выполнением модели
Функция Описание
boolean runSimulation() Команда исполняющего модуля, которая выполняется только в том случае, если модуль находится в состоянии PAUSED. В других состояниях не делает ничего, просто возвращает false.
Переводит исполняющий модуль в состояние RUNNING и затем запускает модель в отдельном потоке. Выполнение может быть прервано в результате одного из следующих событий:
  • больше нет событий, которые нужно выполнить (состояние FINISHED)
  • достигнуто заданное время stopTime, когда выполнение модели должно завершиться (состояние FINISHED)
  • была вызвана функция pause() (состояние PAUSED)
  • агент верхнего уровня был уничтожен (состояние FINISHED)
  • во время выполнения события или уничтожения агента произошла ошибка (состояние ERROR)
Эта функция не должна вызываться из потока выполнения модели!
Ко времени завершения работы этой функции исполняющий модуль может находиться в состоянии PAUSED, FINISHED или ERROR.
boolean pauseSimulation() Команда исполняющего модуля, которая выполняется только в том случае, если модуль находится в состоянии RUNNING. В других состояниях не делает ничего, просто возвращает false.
Переводит исполняющий модуль в состояние PLEASE_WAIT и затем выставляет флаг, который при проверке исполняющим модулем, вынуждает его завершить выполнение модели после того, как выполнится текущее событие. Дальнейшее поведение зависит от контекста, из которого была вызвана эта функция:
  • •Если эта функция вызывается из потока выполнения модели, из кода действия элемента управления или из действия по щелчку фигуры, то она мгновенно возвращает true. Модель приостанавливается сразу после выполнения текущего события.
  • •Если эта функция вызвана из какого-либо другого места (например, из заданного пользователем параллельного потока), то она ждет завершения потока выполнения модели и возвращает true.
Ко времени завершения работы этой функции исполняющий модуль может находиться в состоянии PAUSED, FINISHED или ERROR.
boolean stopSimulation() Команда исполняющего модуля, выполняемая только в том случае, если модуль не находится в состоянии IDLE.
В состоянии IDLE не делает ничего, просто возвращает false. Если модуль находится в состоянии RUNNING, то устанавливает флаг, который при проверке потоком выполнения модели, вынуждает исполняющий модуль завершить выполнение модели. Дальнейшее поведение зависит от контекста, из которого вызван эта функция:
  • •Если эта функция вызывается из потока выполнения модели, из кода действия элемента управления или из действия по щелчку фигуры, то она мгновенно возвращает true, оставляя модуль в состоянии PLEASE_WAIT. Модель останавливается и уничтожается позднее (обработку этого момента можно добавить в Действие после "прогона" модели эксперимента или в Действие при уничтожении агента верхнего уровня). В таких ситуациях рекомендуется использовать функцию finish().
  • •Если эта функция вызвана из какого-либо другого места (например, из заданного пользователем параллельного потока), то она ждет завершения потока выполнения модели, а затем уничтожает модель (вызывает функцию root.onDestroy()) и забывает о ней. После этого она помещает управляющий модуль в состояние IDLE и возвращает true.
boolean finishSimulation() Команда исполняющего модуля, выполняемая только в том случае, если модуль находится в состоянии RUNNING или PAUSED. В других состояниях не делает ничего, просто возвращает false.
Устанавливает флаг, который при проверке исполняющим модулем, вынуждает его завершить выполнение после завершения выполнения текущего события. Дальнейшее поведение зависит от контекста, из которого вызвана эта функция:
  • Если эта функция вызывается из потока выполнения модели, из кода действия элемента управления или из действия по щелчку фигуры, то она мгновенно возвращает true. Модель останавливается сразу после выполнения текущего события (обработку этого момента можно добавить в Действие после "прогона" модели эксперимента.
  • Если эта функция вызвана из какого-либо другого места (например, из заданного пользователем параллельного потока), то она ждет завершения потока выполнения модели и возвращает true.
Ко времени завершения работы этой функции исполняющий модуль может находиться в состоянии FINISHED или ERROR.
Сообщения об ошибках
Функция Описание
RuntimeException error(Throwable cause, String errorText) Сообщает об ошибке во время выполнения модели: выдает ошибку RuntimeException с соответствующим текстом errorText, предварив его полным именем агента. Эта функция никогда ничего не возвращает, лишь выдает ошибку. Тип возвращаемого объекта задается в тех случаях, когда вы хотите использовать следующий способ вызова: throw error("my message");

cause — причина (сохраняется для более подробного сообщения), может быть null
errorText — текст с описанием ошибки, который будет выводиться в панель Ошибки
RuntimeException errorInModel(Throwable cause, String errorText) Сообщает об ошибке во время выполнения модели: выдает ошибку ModelException с заданным текстом ошибки, предварив его полным именем агента. Эта функция никогда ничего не возвращает, лишь выдает ошибку. Тип возвращаемого объекта задается в тех случаях, когда вы хотите использовать следующий способ вызова: throw errorInModel("my message");
Данная функция отличается от функции error() тем, как отображается сообщение об ошибке: ошибки в логике модели не так "серьезны" по сравнению с другими ошибками. Они случаются довольно часто и сообщают разработчику о необходимости изменить некоторые параметры модели.
Примером могут послужить такие сообщения: "агент не смог покинуть блок диаграммы процесса, поскольку следующий блок занят" или "недостаточная вместимость стеллажа".

cause — причина (сохраняется для более подробного сообщения), может быть null
errorText — текст с описанием ошибки, который будет выводиться в панель Ошибки
void warning(String warningText) Выдает предупреждение в ходе выполнения модели с заданным текстом предупреждения warningText, предварив его полным именем агента.
При отображении таких сообщений соблюдается ряд условий:
  • Когда возникает множество предупреждений с одинаковым текстом warningText, отображаются только первые 10.
  • Когда возникает больше 1000 предупреждений с разным текстом warningText, все последующие предупреждения warnings, включая повторы тех, которые уже вошли в первую 1000, не отображаются.
  • Будьте аккуратны с использованием динамически меняющегося текста warningText, например, при перечислении имен агентов. Для таких случаев мы рекомендуем использовать warning(warningTextFormat, args).
void warning(String warningTextFormat, Object ... args) Выдает предупреждение в ходе выполнения модели с заданным текстом предупреждения warningText, предварив его полным именем агента.
При отображении таких сообщений соблюдается ряд условий:
  • Когда возникает больше 1000 предупреждений с разным текстом warningTextFormat, все последующие предупреждения warnings, включая повторы тех, которые уже вошли в первую 1000, не отображаются.
  • Можно вызывать множество предупреждений со строками одинакового формата, который определяет тип предупреждения, но если аргументы args будут отличаться, AnyLogic отобразит только первые 10 предупреждений каждого типа.
  • Когда возникает больше 1000 предупреждений с разным текстом warningTextFormat, все последующие предупреждения warnings, включая повторы тех, которые уже вошли в первую 1000, не отображаются.
Не используйте динамически изменяющийся аргумент warningTextFormat, например, для перечисления имен агентов. Вместо этого используйте аргументы args.
Общая информация об агенте
Функция Описание
int getId() Возвращает уникальный идентификатор вашего агента в контексте текущего выполнения модели.
String getName() Возвращает имя вашего агента, например, имя его экземпляра в агенте-среде с индексом в квадратных скобках, если ваш агент реплицирован. Для агентов верхнего уровня возвращает root. Для популяции по умолчанию имя популяции будет <population>.
String getFullName() Возвращает полное имя вашего агента и путь к нему, начиная с агента верхнего уровня.
String agentInfo() Возвращает информацию о вашем агенте:
  • Задана дли для него среда
  • Текущие координаты x, y, z
  • Значения вращения по горизонтали и вертикали в радианах
  • Скорость движения агента
  • Двигается агент сейчас или нет
  • Связи агента
String toString() Возвращает информацию об агенте в текстовом формате, возможно, в нескольких строках. Используйте эту функцию, чтобы отображать информацию об агенте в окне инспекта в ходе выполнения модели. Чтобы настроить то, что возвращает функция, идите в секцию Специфические свойств типа агента и щелкните по кнопке Создать функцию toString() с параметрами. В свойствах созданной функции вы сможете настроить ее под ваши нужды.
Специфические
Функция Описание
void create() Создает вложенные объекты вашего агента и вызывает пользовательские функции: onBeforeCreate() в начале onCreate() в конце.
Эта функция вызывается после того, как агент был создан и его параметры были заданы агентом-средой. Если существуют какие-то вложенные объекты, функция doCreate() должна быть реализована в подклассе.
void createAndStart(Agent anyAgent) Делает агента-среду вашего агента агентом верхнего уровня, создает внутренню структуру агента (вложенные агенты, диаграммы состояний и так далее) и запускает его. Таким образом диаграмма состояний агента и события начинают работу.
Эту функцию необходимо вызывать для всех агентов, созданных пользователем в своем коде с помощью конструктора без аргументов.
Не вызывайте эту функцию для агентов, созданных обычным путем в интерфейсе AnyLogic и для агентов, созданных в библиотечных блоках (Source, PedSource и так далее).

anyAgent — любой допустимый агент модели. Вам нужно получить агента верхнего уровня модели, который станет настоящей "средой" созданного агента. Значение не может быть равно null и должно содержать отсылку getEngine() к допустимому исполнительному модулю.
<T extends AgentExtension> T ext(Class<T> c) Возвращает расширение заданного типа агента. Создает расширение, если его еще не было. В некоторых случаях функция tryExt() может быть полезной, если вам просто нужно проверить, есть ли у агента какие-то расширения, не создавая их.
Создав свой нестандартный класс расширения, не забудьте его зарегистрировать.
Функция может вернуть сообщение об ошибке, если запрошенное расширение несовместимо теми расширениями, которые у агента уже есть (например, вы запросили "Агент с дискретным типом пространства", а у агента уже есть расширение "агент с непрерывным типом пространства").
Пользователям не стоит сохранять ссылку на полученное расширение. Вместо этого лучше сохранить ссылку на самого агента и при необходимости вызывать эту функцию, чтобы получить расширение. Причина такого ограничения заключается в том, что агент в любой момент времени может получить другое расширение, которое перепишет некоторые функции, реализованные в ранее добавленном расширении.
c — тип расширения. Используйте одну из констант EXT_* или ваш собственный класс расширения, если вы его задали
<T extends AgentExtension> tryExt(Class<T> c) Возвращает расширение заданного типа агента только в том случае, если этот агент уже содержит такое расширение. Возвращает null, если расширение не задано.

c — тип расширения. Используйте одну из констант EXT_* или ваш собственный класс расширения, если вы его задали
Как мы можем улучшить эту статью?