При создании траектории движения программа Revit анализирует текущий вид и вычисляет оптимальный (кратчайший) путь. Во время расчета траектории движения исключаются категории, определенные в настройках как препятствия, но учитывается ширина тела обычного человека и раскачивание во время ходьбы.
Анализ траектории движения выполняется на основе механизма анализа Simulex. Процесс состоит из четырех этапов.
Эти этапы представляют собой внутренние процедуры анализа. Они описываются в следующих разделах для наглядной демонстрации создания траектории.
Для запуска анализа траектории движения к виду в плане Revit применяется сетка. Ее разрешение является фиксированным и составляет 0,2 м. Каждой ячейке сетки задается значение, зависящее от расстояния до конечной точки траектории. Цвета на изображении обозначают диапазоны расстояний.
Ячейки с категориями, определенными как препятствия, не учитываются (показаны черным цветом). Если такие ячейки с двух сторон окружают другую ячейку, она также исключается из расчета. На следующем изображении демонстрируется это условие между некоторыми столами. Оно может повлиять на анализ, если пространство очень тесное.
Сетки и расстояния |
![]() |
На основе первоначальных расчетов Revit создает предварительную траекторию, формируя узлы через центральные точки ячеек вдоль кратчайшего пути. Кратчайший свободный путь определяется с помощью пользовательской формы алгоритма A*.
Предварительная траектория |
![]() |
Для формирования оптимального пути Revit выявляет препятствия вдоль предварительной траектории. Чтобы найти ближайшие препятствия, в каждом узле предварительной траектории размещается окружность с радиусом 0,3 м. Самые близкие точки пересечения препятствия с окружностью определяются как угловые точки привязки для измененной траектории.
Поиск ближайших препятствий |
![]() |
Для захвата дополнительных угловых точек привязки Revit выполняет еще один проход по предварительной траектории. В узлах, где не были найдены препятствия в радиусе 0,3 м, размещается окружность с радиусом 0,566 м для поиска отдаленных препятствий.
Поиск ближайших препятствий: второй проход |
![]() |
С помощью угловых точек привязки Revit создает измененную траекторию движения, как можно ближе к препятствиям, вдоль предварительной траектории. Измененная траектория становится основой для создания окончательной траектории движения.
Измененная траектория |
![]() |
Revit смещает каждый узел в измененной траектории на 0,3 м от препятствия (0,25 м для радиуса тела и 0,05 м для раскачивания). Смещение проецируется на 90° от углов входа/выхода для узла, при этом между точками смещения должно быть не менее 30°.
Смещение с учетом ширины тела |
![]() |
Точки смещения, которые находятся слишком близко друг к другу (меньше 0,2 м), объединяются для сглаживания окончательной траектории. Revit создает финальную оптимальную траекторию с помощью точек смещения.
Создание окончательной траектории движения |
![]() |