Запрос на функцию

Такая возможность есть. Только в Digitals 3D объекты выдавливаются не из полигонов основания здания, а из полигонов контуров крыш. Здания при этом строятся сверху вниз, начиная с крыши :slight_smile:.

Исходные данные: плоские полигоны крыш на правильной высоте и модель рельефа в виде ЦМР, пикетов, структурных линий и т.п.

Создание 3D зданий методом выдавливания:

  1. Установить тип слоя в Карта>Слои для полигонов крыш 3D модель.
  2. Полигоны, представляющие надстройки на крышах нужно выделить в отдельный слой. Код (ID) этого слоя должен быть в диапазоне 31-50, в то время как код слоя основных крыш 0-30. Об этом сказано в статье vinmap.net/digitals/?act=3dbuild. Изменить код слоя можно в менеджере слоев, кликнув правой кнопкой по слою и выполнив команду Изменить ID.
  3. Пометить все полигоны крыш, в том числе и крыши надстроек, и выполнить команду Сервис>Преобразовать>Полигон в 3D модель. Обратите внимание, сегменты полигона теперь представляют собой вырожденные в линию грани стен. В этом можно убедится, открыв список координат в Правка>Свойства объекта.
  4. Пометить модель рельефа (ЦМР, бреклайны, пикеты) и выполнить команду ЦМР>Переприсвоить высоты. Для 3D объектов это команда работает по особому. И вы должны увидеть, что у ваших зданий появились стены. Стены зданий должны спроецироваться на поверхность земли, стены надстроек на крыши зданий под ними. Однако самих крыш еще нет.
  5. Для построения крыш выполнить команду скрипта @Map.CoverMultiFlatRoofs. При этом в карте не должно быть помеченных объектов. Если у вас нет панели инструментов для вызова скриптов, выполните Окно>Создать панель инструментов, затем правый клик по пустой панели и вызовите команду Добавить кнопку. В списке слева ищите указанную команду для генерации крыш.

Здания построены и их теперь можно текстурировать и экспортировать в Google Earth. Как это делать описано в упоминавшейся статье.

В следующих версиях Digitals появится команда для автоматического объединения 3D объектов (надстроек, пристроек, куполов и т.д.) в единое здание.

Если вместо полигонов крыш у вас контуры основания зданий (footprint’ы) поднять их на нужную высоту можно кнопкой DZ на панели Правка. Либо же при помощи скрипта, изменяя параметр Z на основании значения параметра этажности.