LandXML To TIN (3D Analyst)
Summary
This tool imports one or more triangulated irregular network (TIN) surfaces from a LandXML file to output Esri TINs.
Usage
-
When the input LandXML file is selected, the TINs to Import parameter is populated with all the TIN surfaces found in the LandXML file.
A constrained Delaunay TIN from the LandXML file is created as a constrained Delaunay TIN.
-
When several TINs will be exported from the LandXML file, the basename would be iterated to define the name of the output TINs in the following manner: <basename>, <basename>2, <basename>3, and so on. If <basename> already exists, the tool will not write anything. If <basename> does not exist but <basename>2 exists, the tool will create <basename> and <basename>2_1, instead of <basename>2.
In script mode, the names inside the tinnames parameter can be specified in short form (only number or only name) for convenience. Instead of "1. Site0445; 2. <unnamed>; 3. <unnamed>; 4. Site_09" , you can specify "1;2;3;4" or "Site0445; Site_09;2;3". The <unnamed> keyword cannot be used by itself because the TIN must be uniquely identified.
Syntax
Parameter | Explanation | Data Type |
in_landxml_path |
The input LandXML file. | File |
out_tin_folder |
The folder that the TINs will be created in. | Folder |
tin_basename |
The prefix name attached to the output TIN. When multiple TINs will be exported from the LandXML file, the base name will be followed by an integer value reflecting the order of the TIN outputs. | String |
tinnames [tinnames,...] (Optional) | Each TIN can be specified by either a name (for example, "Tin01") or its position in the list of available LandXML TINs (for example 1 to specify the first TIN). The list of TINs to import can be entered as a semicolon-delimited string (for example, "1. Tin01; 2. Tin02"), a list of strings (for example, ["1. Tin01", "2. Tin02"]), or a list of numeric values that denote the position of the desired TINs (for example, [1, 2, 3]). | String |
Code Sample
The following sample demonstrates the use of this tool in the Python window:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LandXMLToTin_3d("surfaces.xml", "TINs", "_", "1;2")
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''****************************************************************************
Name: LandXMLToTin Example
Description: This script demonstrates how to use the
ListFiles method to collect all LandXML (*.xml) files in a
workspace as input for the Import3DFiles tool.
****************************************************************************'''
# 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 ListFiles method to grab all xml files (assumedly LandXML files)
landList = arcpy.ListFiles("*.xml")
if landList:
for landFile in landList:
# Set Local Variables
outputFolder = "TINs" # The folder that the TINs will be created in
outputBase = "Madagascar_" # Base name will be applied to all output TINs
grab = "1" # TIN selection can be chosen by enumerated values (e.g. 1;2)
# Execute Import3DFiles
arcpy.LandXMLToTin_3d(landFile, outputFolder, outputBase, grab)
print "Completed creating TIN(s) from {0}.".format(landFile)
else:
"There are no xml 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)