3.5.1. Гайд по формированию файлов модели для WEB клиента
Основные понятия
WEB-клиент — это браузерный клиент BIM-платформы, который позволяет загружать и просматривать BIM-модели, адаптированные для веб-окружения.
|
Основным форматом файлов для загрузки в WEB-клиент является GLTF (GL Transmission Format) или его бинарная версия — GLB. Эти форматы разработаны специально для 3D-графики и широко используются для обмена 3D-данными в вебе. Они оптимизированы для быстрого рендеринга, что позволяет эффективно работать с моделями прямо в браузере.
Веб модуль модуль S-info приобретаться отдельно.
|
GLTF и GLB: Основные особенности
GLTF (GL Transmission Format) — это JSON-формат, который описывает структуру 3D-модели, включая геометрию, текстуры и анимацию. Этот формат удобен для чтения и обработки, так как информация о сцене записана в текстовом виде, что упрощает редактирование и оптимизацию данных. GLTF считается "JPEG для 3D" из-за своей компактности и универсальности. Его структура поддерживает различные уровни детализации, что делает формат подходящим для веб-приложений.
GLB (Binary GLTF) — это бинарная версия GLTF, в которой все данные модели (включая текстуры и метаданные) хранятся в одном файле. Этот формат компактнее GLTF, так как все данные сжаты и упакованы вместе. GLB проще и быстрее загружается в веб-клиент, так как не требует дополнительной обработки или поиска внешних файлов.
|
IdOnScene — уникальный идентификатор элемента 3D-модели, обеспечивающий связь модели с данными проекта. Корректная настройка идентификаторов позволяет пользователю синхронизировать элементы модели с проектом, просматривать свойства и взаимодействовать с объектами.
|
Оптимизация модели
Процесс подготовки 3D-модели для работы в WEB-клиенте. Включает уменьшение количества полигонов, снижение объема текстур, разделение модели на логические блоки и использование сторонних инструментов для сжатия, таких как gltf-transform. Оптимизация помогает улучшить производительность модели и повысить удобство взаимодействия.
|
Экспорт модели
Процесс выгрузки объектов 3D-сцены в файлы 3D-модели для загрузки в WEB-клиент. Может выполняться через панели «Сборочная модель» и «Структура» в настольном ПО, с возможностью разбивать модель на части и скрывать ненужные элементы.
|
Связь элементов 3D-модели с проектом через идентификаторы
В веб-клиент можно загрузить любые файлы в формате GLTF. Однако, если такие файлы не были выгружены из специализированного ПО для работы с BIM-моделями, например, если они были самостоятельно сконвертированы из формата IFC или другого, то связь между моделью и данными проекта работать не будет.
Если файлы GLTF выгружаются корректно из ПО с правильными идентификаторами, то каждый элемент 3D-модели будет иметь уникальный идентификатор (IdOnScene), который используется для связи с данными проекта. Это позволяет синхронизировать модель с проектом: выбрать элементы в структуре, просматривать их свойства, фокусировать внимание на определенных частях модели и т. д. Все это возможно благодаря правильной настройке идентификаторов.

Рисунок 39 –
Если идентификаторы (IdOnScene) в файлах модели для WEB-клиента будут неправильными или отсутствовать, модель не будет связана с данными проекта. В таком случае, модель будет доступна только для просмотра без возможности взаимодействовать с проектом. Это может привести к ограничению функционала, так как такие файлы не будут иметь возможность быть частью общей структуры проекта и взаимодействовать с другими элементами через интерфейс.
|
Введение в работу с 3D-моделью в WEB-клиенте
WEB-клиент позволяет отображать 3D-модели (3D модель являться файлом), которые структурированы в виде дерева. Иерархия файлов в файловой системы определяет организацию частей модели в WEB-клиенте. Таким образом, при подготовке модели структура в WEB-клиенте будет идентична иерархии папки загружаемой на сервер, где каждый уровень вложенности папок представляется как уровень дерева элементов в WEB-интерфейсе.
|
Форматы файлов.
Файлы WEB модели. Для выгрузки файлов в WEB-клиент существует два основных формата:
glTF;
|
GLB.
|
GLTF - GLTF (GL Transmission Format) — это формат файла для хранения 3D сцен и моделей, который является простым , расширяемым и легко взаимодействующим с современными веб-технологиями. Данный формат хорошо сжимает трехмерные сцены и минимизирует обработку во во время выполнения действий с моделями.
GLB - бинарный формат glTF, по сути это упакованный в архив gLTF, за счет архивации уменьшается размер файла, что существенно снижает объемы передаваемых данных между сервером и браузером, но может возрасти нагрузка на браузер при распаковке файла в памяти.
Поддерживаются и второстепенные форматы файлов (IFC, FBX и другие), однако они функционируют только в режиме просмотра (связь через IdOnScene c структурой и данными в проекте отсутствует). Подробнее про связь через IdOnScene описано ниже.
|

Рисунок 40 –
WEB-клиент предоставляет возможность использовать виджеты в дашборде для работы с отдельными частями 3D-моделей. Подобные виджеты могут получать источник данных в виде документов — объектов, к которым подключены файлы моделей. Это дает возможность загружать не всю модель сразу, а только необходимые части, что положительно сказывается на скорости работы модели и позволяет создавать виджеты с определенными сооружениями для дашборда (мост, здание и т.д.), загружая в дашборте только их.
На данный момент в виджете 2 типа источника файлов модели:
документы объекта (любого, на выбор пользователя);
|
выбор файлов модели самого проекта (папка web3d).
|
Так же веб-клинент позволяет просматривать веб модель проекта (основная модель в проекте (папка web3d))

Рисунок 41 –
Подготовка и экспорт файлов модели
Для веб-клиента нужно подготовить модель в формате GLTF или GLB (бинарная версия GLTF). Экспорт можно выполнить через две панели: «Сборочная модель» и «Структура» в настольном ПО.
|
Выгрузка через структуру
Панель структуры позволяет выгружать модель по дереву. Если элементы не привязаны, они не попадут в выгрузку. Эта панель удобна для организации файлов. Например, в сборочной модели может быть много мелких файлов без чёткой связи, но с помощью структуры их можно сгруппировать, например, по сооружениям или этапам.
Сборочная модель
Сборочная модель — это панель для загрузки IFC-файлов. Структура выгрузки зависит от того, какие файлы были загружены в эту панель.
|
Почему не выгружать всё в один файл GLTF?
Модели могут быть очень большими, и загружать всё сразу в WEB-клиенте не всегда целесообразно. Например, если пользователю нужно только здание или мост, нет смысла загружать остальные части модели. В этом случае модель можно разбить на необходимые части, чтобы в WEB-клиенте загружать только нужные элементы. Это также упрощает работу с виджетами на дашборде, так как будет удобнее выбирать конкретные сооружения для отображения в виджет или проекте.
|
Общие рекомендации
Выбирайте и выгружайте только нужные объекты в WEB-клиенте. Чем меньше будет финальная модель, тем быстрее и производительнее она будет работать в браузере. Важно соблюдать баланс между необходимыми и менее важными элементами, скрывая те, которые не нужны.
Рекомендуем настроить набор видимости в настольном клиенте, скрыв все элементы, которые не должны быть в WEB-модели (например, мелкие болты или геоснимки). Это позволит в дальнейшем быстро скрывать ненужные элементы по мере необходимости. Также, можно использовать поиск, чтобы быстро найти и скрыть типовые мелкие объекты (например, болты), а затем массово добавить их в набор видимости.
|
Экспорт через сборочную модель
Когда все ненужные элементы скрыты, можно начинать экспорт.
Экспорт из сборочной модели:
Перейдите на панель «Сборочная модель»;
|
Выберите нужные части модели;
|
Нажмите на «стрелочку» и выберите «Автоматическое создание веб-модели».
|

Рисунок 42 –
После этого откроется окно настроек экспорта. Подробности о настройках экспорта описаны ниже;
|
После завершения экспорта файлы модели будут сохранены в папке «Web3D» внутри проекта.
|
Пример пути: E:\clnew\Data\Pr\<GUID Проекта>\Web3D.
Также в тултипе кнопки «Загрузить WEB модель» указан путь до этой папки.
|

Рисунок 43 –
Почему «Автоматическое создание веб-модели»?
При экспорте через эту кнопку, файлы будут автоматически сгруппированы по подпапкам, что упростит дальнейший выбор и организацию файлов для веб-клиента и после экспорта будет предложено сразу отправить файлы на сервер.

Рисунок 44 –
После завершения экспорта через кнопку «Автоматическое создание веб-модели» появится диалоговое окно для подтверждения отправки всей папки на сервер, что эквивалентно нажатию на кнопку «Загрузить Web модель».
Ниже будет описан этап отправки выгруженных файлов на сервер, так как в этом процессе есть несколько особенностей. Поэтому, если вы следуете этому руководству, рекомендуется сначала нажать «Нет», и только после прочтения всех инструкций отправить файлы на сервер.
|

Рисунок 45 –
Экспорт через панель «Структуры»
Для экспорта модели через панель «Структура» выполните следующие шаги:
Выберите нужные элементы для экспорта (все дочерние элементы выбранных объектов также будут выгружены);
|
Нажмите на значок стрелки и выберите пункт «Экспорт структуры в WEB».
|

Рисунок 46 –
Экспорт через панель «Структура» отличается от экспорта через «Сборочную модель». В этом случае все выбранные элементы сохранятся в один файл без автоматической разбивки на папки. Чтобы получить требуемую организацию файлов, выбирайте, что именно должно быть включено в каждый отдельный файл.
Например, если в структуре имеется верхний уровень «Мост имени доктора S», и вы хотите, чтобы этот мост загружался в веб-клиенте отдельно, выделите его верхний уровень и экспортируйте. В результате получится один файл модели, который будет содержать все объекты, относящиеся к этому мосту.
|
Таким образом, поочередно выбирая и экспортируя нужные части модели, вы можете вручную создать необходимую структуру папок. После экспорта просто переместите каждый выгруженный файл в нужное место в дереве папок в папке WEB3D. Это позволит вам организовать модель в веб-клиенте так, как требуется для удобной навигации и загрузки.

Рисунок 47 –
Настройки экспорта
Окно настроек экспорта открывается перед началом самого экспорта.
Эти настройки позволяют настроить оптимальный процесс экспорта, чтобы обеспечить лёгкость работы с моделью в веб-клиенте и минимизировать нагрузку на ресурсы браузера.
|
Например, без этой настройки экспорт может создать один файл модель.gltf размером 300 МБ. С включенной опцией модель будет разбита на три файла:
модель_part1.gltf (100 МБ);
|
модель_part2.gltf (100 МБ);
|
модель_part3.gltf (100 МБ).
|
Данный подход ускоряет загрузку и улучшает производительность модели в веб-клиенте.
|
Загрузка файлов на сервер
После экспорта у нас получается папка WEB3D с иерархией файлов модели. Теперь её нужно отправить на сервер для использования в веб-клиенте.
Проверка структуры папки. Прежде чем отправлять, убедитесь, что структура и названия папок в папке WEB3D соответствуют требованиям. Убедитесь, что все файлы находятся на своих местах и названы правильно;
|
Загрузка модели на сервер. Откройте панель «Сборочная модель» в программе, нажмите на стрелочку и выберите «Загрузить Web модель». Это действие отправит всю папку;
|

Рисунок 49 –
Обновление данных на сервере. При загрузке на сервер все ранее загруженные файлы модели будут удалены, и заменены новой структурой папки WEB3D. Загруженная папка станет актуальной моделью проекта.
|

Рисунок 50 –
Особенности загрузки
Неавтоматическая загрузка. Если вы работаете на другом устройстве или с другого клиента, автоматической загрузки папки WEB3D не произойдёт. В таком случае необходимо вручную создать папку WEB3D на устройстве. Если папка отсутствует и при этом выполнить команду «Загрузить Web модель», все данные текущей модели на сервере будут удалены.
Дополнительная оптимизации модели
Каждая модель уникальна, и универсального гайда для оптимизации под все случаи не существует. Для сложных моделей, особенно тех, которые нагружают веб-клиент, может потребоваться дополнительная обработка.
Основная цель такой оптимизации — облегчить модель для стабильной работы в браузере, сохраняя при этом связь с данными проекта через идентификаторы (IdOnScene).
|
Как оптимизировать модель
После подготовки финальной папки WEB3D и перед отправкой на сервер можно провести дополнительную оптимизацию файлов. Вы можете использовать любые сторонние оптимизаторы, чтобы уменьшить количество полигонов, упростить геометрию или найти другие способы облегчить модель, при этом сохраняя имена объектов и их ID.
Пример оптимизации с использованием gltf-transform
Для некоторых проектов мы использовали утилиту gltf-transform для дополнительного сжатия и упрощения моделей. Gltf-transform – это консольная программа, и для удобства мы создали небольшую обёртку, которая запускает gltf-transform с нужными параметрами для каждого файла в папке WEB3D. Обёртка сохраняет изначальную структуру папок и имена файлов, но оптимизирует их содержимое.
Как использовать утилиту:
Скачайте и установите Node.js и gltf-transform (через команду npm install --global @gltf-transform/cli);
|
Запустите нашу обёртку для автоматизации процесса;
|
Укажите путь к исходной папке с моделью (WEB3D) и путь к выходной директории, где будет сохранена оптимизированная версия модели;
|
Утилита предложит выбрать шаги оптимизации. Подробности о каждом этапе можно найти в документации gltf-transform, но для большинства моделей мы рекомендуем включить - сжатие Draco - для уменьшения размера файлов.
После оптимизации в выходной папке будет сохранена структура, идентичная исходной, но с меньшими и более производительными файлами.