Краткая информация
Конвертирует один или более объект-мультипатч в набор файлов 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.
Синтаксис
MultipatchToCollada_conversion (in_features, output_folder, {prepend_source}, {field_name})
Параметр | Объяснение | Тип данных |
in_features | Объекты типа мультипатч для экспорта. | Feature Layer |
output_folder | Папка-адресат, где будут размещены выходные файлы COLLADA и текстурные файлы изображений. | Folder |
prepend_source (дополнительно) | Добавьте имена выходных файлов COLLADA к имени исходного векторного слоя.
| 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
import exceptions, sys, traceback
from arcpy import env
# Script variables
inWorkspace = arcpy.GetParameterAsText(0)
try:
# Set environment settings
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)
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
Параметры среды
Этот инструмент не использует параметры среды геообработки
Информация о лицензировании
- ArcGIS for Desktop Basic: Да
- ArcGIS for Desktop Standard: Да
- ArcGIS for Desktop Advanced: Да