Слой 3D в класс объектов (3D Analyst)
Резюме
Производит экспорт слоев пространственных объектов, для которых определены 3D-свойства, в класс пространственных объектов-мультипатчей.
Использование
-
Будут конвертированы только те объекты, которые могут быть отображены в виде мультипатчей, например точки с условными обозначениями в виде 3D-маркеров. Не поддерживаются символы текстурной заливки, а также слои ArcMap, поскольку они не содержат никаких 3D-свойств.
-
Используются только некоторые 3D-свойства, например:
- 3D-символы, присвоенные точкам
- 3D-символы, присвоенные линиям
- Вытягивание, примененное к полигонам
- Невытянутые полигоны, имеющие Z-значения
- Пониженное разрешение текстур для объектов-мультипатчей
-
Слои драпировки из ArcGlobe не поддерживаются. По причине динамической природы драпированных поверхностей, их значения высот не будут сохранены.
-
Символы текстурной заливки не поддерживаются. Если какой-либо объект в слое применяет символ 3D-маркера с ограниченными свойствами, например с текстурами, то этот объект не будет присутствовать в результате.
Примечание:Слой пространственных объектов с 3D-свойствами, как правило, хорошо показывает себя в применении для визуализации, и его конвертация в мультипатч не требуется. Тем не менее, конвертация такого слоя в мультипатч удобна в случае, если полученный мультипатч будет применяться для дополнительного редактирования в стороннем моделирующем программном обеспечении, или в случае, если мультипатч большого размера будет использоваться в ArcGlobe в качестве кэшированного слоя.
Синтаксис
Параметр | Объяснение | Тип данных |
in_feature_layer |
Входной слой пространственных объектов с определенными 3D-свойствами. | Feature Layer |
out_feature_class |
Выходной класс пространственных объектов мультипатч. | Feature Class |
group_field (дополнительно) |
Поле во входном классе объектов, идентифицирующее пространственные объекты, которые войдут в один объект-мультипатч. Полученные атрибуты будут записаны в одну из входных записей. | Field |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Layer3DToFeatureClass_3d("Points_3D.lyr", "Test.gdb/trees")
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: Layer3DToFeatureClass Example
Description: This script demonstrates how to use the
Layer3DToFeatureClass tool to create multipatches from all
layers in a target workspace. The layer files are assumed to have
been saved wtih 3D rendering from ArcScene.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Use the ListFiles method to identify all layer files in workspace
if arcpy.ListFiles("*.lyr"):
for lyrFile in arcpy.ListFiles("*.lyr"):
# Set Local Variables
outFC = "Test.gdb/{0}".format(lyrFile[:-4]) #Strips '.lyr' from name
#Execute Layer3DToFeatureClass
arcpy.Layer3DToFeatureClass_3d(file, outFC)
else:
"There are no layer files in {0}.".format(env.workspace)
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)