Мультипатч в Collada (Конвертация)

Сводка

Конвертирует один или более объект-мультипатч в набор файлов COLLADA (.dae) и создает ссылки на текстурированные файлы изображений в выходной папке. Входными данными может быть слой или класс пространственных объектов.

Использование

  • Файлы COLLADA являются XML представлением 3D-объекта, который может иметь ссылки на дополнительные файлы изображений, ведущих себя как текстуры, драпированные в 3D геометрию. Это означает, что экспорт объекта типа мультипатч в COLLADA может привести к созданию нескольких файлов: файла .dae, содержащего XML представление 3D-объекта, и один или несколько файлов изображений (например, файл .jpg или .png), содержащих текстуры.

  • Этот инструмент создает одно представление COLLADA для каждого объекта типа мультипатч, который он экспортирует. Инструмент использует значение поля из каждого пространственного объекта (по умолчанию, это поле Object ID) для определения имен выходных файлов. Это позволяет облегчить определение того, какой пространственный объект был экспортирован в какой файл COLLADA, а также предоставляет методы для определения уникальных имен при экспорте нескольких пространственных объектов в ту же директорию. Файлы текстур хранятся в той же директории, что и файл COLLADA. Для уменьшения общего размера файла экспорта текстуры, которые используются в нескольких файлах COLLADA – например, повторяющиеся строительные блоки или окна, экспортируются только один раз и указываются в соответствующих файлах DAE.

  • Этот инструмент автоматически перезаписывает все существующие файлы COLLADA с такими же именами. Если это происходит, дается предупреждение о том, какие файлы были перезаписаны с новым файлом в процессе экспорта. Также возникает сообщение GP для тех пространственных объектов, которые не могут быть экспортированы (например, если выходное местоположение используется только для чтения, или если диск заполнен).

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

  • При повторным обновлении объекта типа мультипатч путем экспорта его в COLLADA и выполнении изменений вне ArcGIS, каждый раз экспортируйте пространственный объект в то же местоположение. Это сохранит один файл на диске для этого пространственного объекта, представляющего самое последнее состояние 3D-объекта.

  • Если экспортируемый мультипатч – в системе координат проекции (например, здание, хранящееся в зоне UTM, то файл KML, содержащий координаты WGS84, также будет создан в выходной папке. Обратите внимание, что в этом процессе не будет использоваться трансформация датума, которая может привести к позиционным расхождениям при отображении KML.

    Подсказка:

    При конвертации мультипатчей из слоя инструмент Мультипатч в COLLADA автоматически вносит цвета, определенные в методе отображения слоя. Например, если слой представляет собой объекты отображения на основании атрибута использования, например, красный для коммерческого, синий для жилого и т.д., то такие цвета будут включены в выходной файл COLLADA. Отображаемый цвет применяется и к текстурированным, и к нетекстурированным объектам-мультипатчам, при этом последний требует обновления файлов базовой текстуры объекта. Вы можете использовать один цвет отображения – белый – для экспорта текстурированных мультипатчей с неизмененными изображениями.

Синтаксис

arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name})
ParameterОбъяснениеТип данных
in_features

Объекты типа мультипатч для экспорта.

Feature Layer
output_folder

Папка-адресат, где будут размещены выходные файлы COLLADA и текстурные файлы изображений.

Folder
prepend_source
(Дополнительный)

Добавьте имена выходных файлов COLLADA к имени исходного векторного слоя.

  • PREPEND_SOURCE_NAMEДобавить имена файлов.
  • PREPEND_NONEНе добавлять имена файлов. Это значение используется по умолчанию.
Boolean
field_name
(Дополнительный)

Атрибут объекта, который будет использоваться в качестве выходного имени файла COLLADA для всех экспортируемых объектов. Если не задано поле, используется Object ID объекта.

Field

Пример кода

MultipatchToCollada пример 1 (окно Python)

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

import arcpy
from arcpy import env

env.workspace = "C:/data"
arcpy.MultipatchToCollada_conversion("Sample.gdb/Buildings", "C:/COLLADA", 
                                   "PREPEND_SOURCE_NAME", "BldName")
MultipatchToCollada пример 2 (автономный скрипт)

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

'''*********************************************************************
Name: Convert Multipatch To Collada
Description: Converts multipatch features in an input workspace 
             to a Collada model.
*********************************************************************'''
# Import system modules
import arcpy

# Script variables
inWorkspace = arcpy.GetParameterAsText(0)

# Set environment settings
arcpy.env.workspace = inWorkspace
# Create list of feature classes in workspace
fcList = arcpy.ListFeatureClasses()
# Determine if the list contained any feature classes
if fcList:
    # Iterate through each feature class
    for fc in fcList:
        # Describe the feature class
        desc = arcpy.Describe(fc)
        # Determine if feature class is a multipatch
        if desc.shapeType is 'MultiPatch':
           # Ensure unique name for output folder
           outDir = arcpy.CreateUniqueName('collada_dir')
           # Specify that collada file is prefixed by source name
           prepend = 'PREPEND_SOURCE_NAME'
           # Specify the feature attribute used to name Collada files
           fldName = 'OID'
           #Execute MultipatchToCollada
           arcpy.MultipatchToCollada(fc, outDir, prepend, fldName)
else:
    print('There are no feature classes in {0}.'.format(inWorkspace))

Environments

Этот инструмент не использует параметры среды геообработки

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы