Уровень

AnyLogic позволяет создавать многоуровневые модели, т.е. многоэтажные здания для моделирования потока пешеходов или сложные многоуровневые конвейеры с помощью библиотеки производственных систем. Во время создания модели вы можете переключаться между уровнями, а также создавать окружение на каждом уровне с помощью элементов разметки пространства.

В каждой модели есть как минимум один уровень, который создается автоматически и называется level. Одновременно редактировать можно только один уровень.

Чтобы переименовать или удалить уровень, необходимо выбрать его в ветке Презентация дерева модели в панели Проекты. При выборе уровня, его свойства отобразятся в панели Свойства.


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

У каждого уровня есть абсолютная Z-координата. У объектов уровня значение Z относительное. Оно вычисляется из абсолютной Z-координата уровня, на котором находятся эти объекты. Если объект является частью группы (фигуры презентации) или сети (пути, узлы, конвейеры, и т.д. ), то значение Z вычисляется для группы / сети.

Уровень, на котором находится объект можно изменить в свойствах этого объекта. Объект будет перенесен в то же самое место на новом уровне, в котором он был на старом. Если объект является частью группы (фигуры презентации) или сети (пути, узлы, конвейеры, и т.д. ), то уровень можно будет сменить только для всей группы / сети.

Во время создания модели можно изменить видимость объектов уровня с помощью виджета, расположенного в правом нижнем углу графического редактора.

Виджет содержит список всех уровней в вашей модели. Текущий уровень выделен серым цветом. Щелкните нужный уровень в виджете, чтобы переключиться на него:

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

Затемнять, если неактивный - содержимое уровня будет затемнено в режиме создания модели, если он неактивен в данный момент.

Скрывать, если неактивный - содержимое уровня будет полностью скрыто в режиме создания модели, если уровень в данный момент неактивен.

Уровень (а также все элементы, находящиеся на нем) может быть видимым и невидимым во время выполнения модели. Видимость уровня задается параметром Видимость в его настройках и может быть изменена во время выполнения модели по вызову функции setVisible().

Материальные объекты можно перемещать между уровнями либо конвейерами, соединенными посредством сетевых портов, либо транспортерами. Транспортеры, движение которых осуществляется по сетевым путям и узлам, могут перемещаться между уровнями по сетевым путям, которые соединены сетевыми портами. Транспортеры с произвольной навигацией используют гейты для перемещения между уровнями.

Для передвижения пешеходов между уровнями необходимо использовать целевые линии и блок PedChangeLevel.

Чтобы создать новый уровень

  1. Щелкните виджет Уровни в графическом редакторе.

  2. В открывшемся меню выберите Создать новый уровень.

Также вы можете создать новый уровень, добавив новый элемент разметки пространства (фигуру презентации, график и т.д.) в графический редактор.

  1. Перейдите в свойства добавленной фигуры и выберите опцию [новый уровень] из выпадающего списка Уровень, например:


Свойства

Основные свойства

Имя - Имя уровня. Имя используется для идентификации уровня и доступа к нему из кода и свойств блоков диаграммы процесса.

Видимость - Здесь вы можете указать, будет ли виден уровень с его элементами на анимации во время выполнения модели. Используя элемент управления, выберите да или нет

Z – Z-координата уровня.

Специфические

Отображать в – Здесь вы можете выбрать, будет ли содержимое уровня отображаться В 2D и 3D, Только в 2D или Только в 3D.

Функции

Z-координата

Функция

Описание

double getZ()

Возвращает Z-координату уровня.

Элементы уровня

Функция

Описание

List<AreaNode> getAreas()

Возвращает список всех пешеходных областей на этом уровне, включая сервис с областью.

List<BulkConveyorBelt> getBulkConveyorBelts()

Возвращает список всех конвейеров для сыпучих материалов на этом уровне.

List<ConveyorNetwork> getConveyorNetworks()

Возвращает список всех конвейерных сетей на этом уровне.

List<Сrane> getCranes()

Возвращает список всех кранов на этом уровне.

List<DensityMap> getDensityMaps()

Возвращает список всех карт плотности на этом уровне.

DensityMap getDensityMap(DensityMapType type)

Возвращает карту плотности заданного типа на этом уровне.

Параметр: type - тип карты плотности: пешеход или транспортер.

List<EscalatorGroup> getEscalators()

Возвращает список всех групп эскалаторов на этом уровне.

List<LevelGate> getGates()

Возвращает список всех гейтов на этом уровне.

List<Lift> getLifts()

Возвращает список всех лифтов на этом уровне.

List<Network> getNetworks()

Возвращает список всех сетей на этом уровне.

List<Node> getNodes()

Возвращает список всех узлов на этом уровне.

List<Pathway> getPathways()

Возвращает список всех направлений пешеходных потоков на этом уровне.

List<PedFlowStatistics> getPedFlowStatistics()

Возвращает список всех статистик потоков на этом уровне.

List<Pipe> getPipes()

Возвращает список всех труб на этом уровне.

List<RailwayNetwork> getRailwayNetworks()

Возвращает список всех ж/д узлов на этом уровне.

List<RoadNetwork> getRoadNetworks()

Возвращает список всех дорожных сетей на этом уровне.

List<StorageTank> getStorageTanks()

Возвращает список всех резервуаров на этом уровне.

List<TargetLine> getTargetLines()

Возвращает список всех целевых линий на этом уровне.

List<AbstractWall> getWalls()

Возвращает список всех стен на этом уровне.

Пешеходы

Функция

Описание

Collection<Agent> getPeds()

Возвращает неизменяемую переменную типа коллекция, содержащую пешеходов, находящихся на этом уровне.

int pedestriansCount()

Возвращает общее количество пешеходов, которые в данный момент находятся на этом уровне.


Препятствия

Функция

Описание

List<Obstacle> getObstacles()

Возвращает список всех элементов разметки пространства на этом уровне, которые отмечены как препятствие.


Видимость

Функция

Описание

boolean isVisible()

Проверяет, отображается ли уровень на анимации во время выполнения модели. 

Если функция возвращает true - значит, уровень отображается, если false - нет.

void setVisible(boolean v)

Задает видимость уровня.

Параметр:
v - видимость. Если значение v равно true - то уровень будет отображаться, если равно false - то нет.



См. также

Гейт между уровнями

Java документация: Класс Level