Уровни Revit, 2D-миникарта на 3D сцене Forge Viewer
Хотите добавить небольшую 2D миникарту и высплывающий диалог с уровнями в Forge Viewer?
К счастью, команда BIM 360 уже создала extension для Forge Viewer-а.
Введение:
Для своей работы это расширение требует дополнительную информацию о высоте здания и всех уровней, чтобы "обрезать" сцену под заданный уровень.
Например, нам нужно посмотреть 5 этаж небоскреба, тогда мы с помощью утилит сечения вручную "обрежем" здание по высоте пола и потолка 4 этажа и настроим камеру на вид сверху. Autodesk.AEC.LevelsExtension сделает это за нас.
Для работы миникарты также требуется эта информация, доступная в отдельном файле 'AECModelData.json', упомянутом в блоге Xiaodong-а. Этот файл автоматически создается для моделей Revit при использовании сервиса Model derivative с мая 2019 года.
Последовательность действий
1. Преобразуйте файл Revit-а в SVF с помощью сервиса Model derivative
2. Во viewer-е используйте метод doc.downloadAecModelData() для загрузки информации об уровнях
3. загрузите расширения "Autodesk.AEC.LevelsExtension" и "Autodesk.AEC.Minimap3DExtension"
4. переключитесь в режим от первого лица - viewer.getExtension("Autodesk.BimWalk").activate();
Пример
- Autodesk.Viewing.Initializer(options, () => {
- const div = document.getElementById('forgeViewer');
- const config = { extensions:[
- "Autodesk.AEC.LevelsExtension",
- "Autodesk.AEC.Minimap3DExtension"
- ]};
- viewer = new Autodesk.Viewing.Private.GuiViewer3D(div, config);
- viewer.start();
- Autodesk.Viewing.Document.load(`urn:${urn}`, (doc) => {
- var viewables = doc.getRoot().getDefaultGeometry();
- doc.downloadAecModelData();
- viewer.loadDocumentNode(doc, viewables).then( onLoadFinished );
- viewer.addEventListener( Autodesk.Viewing.TEXTURES_LOADED_EVENT, ()=>{
- viewer.getExtension("Autodesk.BimWalk").activate();
- });
- });
- ...
Посмотреть можно здесь:
https://wallabyway.github.io/forge-pinch-zoom/minimap.html
Источник: https://forge.autodesk.com/blog/add-revit-levels-and-2d-minimap-your-3d
Опубликовано 28.02.2020