Подпись | Описание | Тип данных |
Входные пространственные объекты-мультипатчи | Объекты-мультипатч, которые нужно экспортировать. | Feature Layer |
Выходная папка COLLADA | Папка назначения, куда будут помещаться выходные файлы COLLADA и файлы изображений текстур. | Folder |
Предварительно указать имя источника (Дополнительный) | Указывает, будут ли имена выходных файлов COLLADA предваряться именем исходного векторного слоя.
| Boolean |
Использовать имя поля (Дополнительный) | Атрибут объекта, который будет использоваться в качестве выходного имени файла COLLADA для каждого экспортируемого объекта. Если поле не указано, то будет использоваться Object ID объекта. | Field |
Версия COLLADA | Определяет версию COLLADA, в которую будут экспортированы файлы.
| String |
Краткая информация
Конвертирует один или несколько объектов мультипатч в набор файлов COLLADA (.dae) и ссылается на текстурированные файлы изображений в выходной папке.
Использование
Файл COLLADA является XML-представлением 3D-объекта, который может ссылаться на дополнительные файлы изображений, работающие как текстуры, драпированные на 3D-геометрию. Это значит, что экспорт объекта-мультипатч в COLLADA может привести к созданию нескольких файлов - файла .dae, который содержит XML-представление трехмерного объекта, и одного или нескольких файлов изображений (например, файла .jpg или .png), содержащих текстуры.
Этот инструмент создает одно представление COLLADA для каждого экспортируемого объекта-мультипатч. Инструмент использует значение поля для каждого объекта, по умолчанию это поле Object ID, чтобы определить выходные имена полей. Это позволяет идентифицировать, какие объекты были экспортированы в конкретный файл COLLADA, а также включает методологию для определения уникальных имен при экспорте нескольких объектов в одну и ту же папку. Файлы текстур хранятся в той же папке, что и файл COLLADA. Чтобы минимизировать общий размер экспортируемого файла, текстуры, которые используются в нескольких файлах COLLADA, такие, как текстуры кирпичной кладки или окон, экспортируются только один раз, ссылка на них идет через соответствующий файл .dae.
Этот инструмент автоматически перезаписывает существующие файлы COLLADA с таким же именем файла. В таком случае появляется предупреждение, где указаны файлы, которые были перезаписаны на новые в ходе процесса экспорта. Также для объектов, которые экспортировать не удалось, создается сообщение геообработки, например, если выходное местоположение доступно только для чтения или диск переполнен.
Чтобы убедиться, что новые файлы COLLADA создаются для всех экспортируемых объектов мультипатч, задайте пустую или новую папку назначения и выберите поля имени файла, которое является уникальным для каждого объекта. При экспорте двух объектов с одинаковыми значениями атрибутов вы получите результат, когда второй экспортируемый объект перезапишет первый созданный файл COLLADA.
При итеративном обновлении объекта-мультипатч путем его экспорта в COLLADA и внесении правок не в ArcGIS, каждый раз нужно будет экспортировать объект в то же место. Это сохранит для этого объекта единый файл на диске, где будет представлена самая последняя трехмерная версия этого объекта.
Если экспортированный мультипатч представлен в системе координат проекции, например, здание в UTM-зоне, то в выходной папке также будет создан файл .kml, содержащий координаты, как WGS84. Этот процесс не использует преобразование датума, которое может привести к позиционным расхождениям при просмотре KML.
Подсказка:
При конвертации мультипатчей из слоя инструмент будет автоматически встраивать цвета, заданные в механизме отрисовки слоя. Например, если слой отрисовывает объекты на основе пользовательских атрибутов, например, красные для коммерческой застройки, а синие - для жилой и т.п., то эти цвета будут включены в выходные файлы COLLADA. Отображенный цвет применяется как к текстурированным, так и к не текстурированным объектам-мультипатч, при этом для первого требуется обновление базовых файлов текстур объекта. Вы можете использовать единственный белый цвет отображения для экспорта текстурированных мультипатчей с неизмененными изображениями.
Параметры
arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name}, collada_version)
Имя | Описание | Тип данных |
in_features | Объекты-мультипатч, которые нужно экспортировать. | Feature Layer |
output_folder | Папка назначения, куда будут помещаться выходные файлы COLLADA и файлы изображений текстур. | Folder |
prepend_source (Дополнительный) | Указывает, будут ли имена выходных файлов COLLADA предваряться именем исходного векторного слоя.
| Boolean |
field_name (Дополнительный) | Атрибут объекта, который будет использоваться в качестве выходного имени файла COLLADA для каждого экспортируемого объекта. Если поле не указано, то будет использоваться Object ID объекта. | Field |
collada_version | Определяет версию COLLADA, в которую будут экспортированы файлы.
| String |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.conversion.MultipatchToCollada("Sample.gdb/Buildings", "C:/COLLADA",
"PREPEND_SOURCE_NAME", "BldName")
В следующем примере показано использование этого инструмента как автономного скрипта 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'
# Run MultipatchToCollada
arcpy.conversion.MultipatchToCollada(fc, outDir, prepend, fldName)
else:
print('There are no feature classes in {0}.'.format(inWorkspace))