Zusammenfassung
Exportiert Feature-Layer mit 3D-Anzeigeeigenschaften in 3D-Linien oder Multipatch-Features.
Verwendung
Feature-Layer, deren Symbolisierung über folgende Eigenschaften verfügt, werden in ein Multipatch exportiert:
- Extrusions- oder Basishöheneinstellungen.
- Zeichen-Markersymbole mit Tiefe.
- Markersymbole für 3D-Modelle.
- Nur Liniensymbolisierung.
- Nur Polygon-Symbolisierung. Wenn ein Polygon-Layer ohne 3D-Ansichtseigenschaften angegeben wird, erfolgt ein Export als ein Multipatch, das dem Polygon ähnelt.
Drapierte Layer in ArcGlobe werden nicht unterstützt. Aufgrund der Dynamik drapierter Oberflächen bleiben Höhenwerte nicht erhalten.
Füllsymbole mit Textur werden nicht unterstützt. Wenn ein Feature im Layer 3D-Markersymbole mit eingeschränkten Eigenschaften, z. B. Texturen, aufweist, wird das Feature nicht zur Ausgabe hinzugefügt.
Dieses Werkzeug unterstützt keine Features, die durch eine der folgenden Eigenschaften symbolisiert werden:
- Markersymbole mit Billboarding. Diese 2D-Symbole sind dynamisch so ausgerichtet, dass sie auf die Kameraposition in einer 3D-Szene weisen. Sie haben deshalb keine feste Ausrichtung, die für den Export verwendet werden kann.
- Bild-Markersymbole.
- Gerasterte Layer, die der Oberfläche der Szene hinzugefügt wurden.
- Shape-Markersymbole, die aus einer Datei auf einem Datenträger stammen.
- Shape-Markersymbole, die aus einer Schriftart stammen, jedoch über keine Tiefeneigenschaft verfügen.
Umgebungseinstellungen für XYZ-Toleranz und -Auflösung werden nur unterstützt, wenn die Ausgabe ein Linien-Feature ist.
Syntax
Layer3DToFeatureClass_3d (in_feature_layer, out_feature_class, {group_field})
Parameter | Erläuterung | Datentyp |
in_feature_layer | Der Eingabe-Feature-Layer, für den 3D-Anzeigeeigenschaften definiert sind. | Feature Layer |
out_feature_class | Extrudierte Punkte werden als 3D-Linien exportiert. Punkte mit 3D-Symbolen, extrudierte Linien und Polygone werden als Multipatch-Features exportiert. | Feature Class |
group_field (optional) | Das Textfeld des Eingabe-Features wird verwendet, um mehrere Eingabe-Features im selben Ausgabe-Feature zusammenzuführen. Die verbleibenden Attribute der resultierenden Ausgabe werden von einem der Eingabedatensätze übernommen. | Field |
Codebeispiel
Layer3DToFeatureClass – Beispiel 1 (Python-Fenster)
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Layer3DToFeatureClass_3d("Points_3D.lyr", "Test.gdb/trees")
Layer3DToFeatureClass – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
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)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert 3D Analyst
- ArcGIS Desktop Standard: Erfordert 3D Analyst
- ArcGIS Desktop Advanced: Erfordert 3D Analyst