Terrain To TIN (3D Analyst)

Available with 3D Analyst license.


Converts a terrain dataset to a triangulated irregular network (TIN) dataset.


  • Define the extent of the output TIN using the geoprocessing extent environment setting.

  • Use an extent and pyramid level that will not exceed the node limit for a TIN. While the maximum number of TIN nodes in a 32-bit Windows platform is estimated to be between 15 to 20 million, a cap of a few million is recommended to maintain optimal display performance. Triangulation of a larger surface is best handled by the terrain dataset.


arcpy.3d.TerrainToTin(in_terrain, out_tin, {pyramid_level_resolution}, {max_nodes}, {clip_to_extent})
ParameterExplanationData Type

The terrain dataset to process.

Terrain Layer

The TIN dataset that will be generated.


The z-tolerance or window-size resolution of the terrain pyramid level that will be used by this tool. The default is 0, or full resolution.


The maximum number of nodes permitted in the output TIN. The tool will return an error if the analysis extent and pyramid level would produce a TIN that exceeds this size. The default is 5 million.


Specifies whether the resulting TIN will be clipped against the analysis extent. This only has an effect if the analysis extent is defined and it's smaller than the extent of the input terrain.

  • CLIPClips the output TIN against the analysis extent. This is the default.
  • NO_CLIPDoes not clip the output TIN against the analysis extent.

Code sample

TerrainToTIN example 1 (Python window)

The following sample demonstrates the use of this tool in the Python window.

arcpy.env.workspace = "C:/data"
arcpy.TerrainToTin_3d("sample.gdb/featuredataset/terrain", "tin", 
                      pyramid_level_resolution=6, max_nodes=4000000)
TerrainToTIN example 2 (stand-alone script)

The following sample demonstrates the use of this tool in a stand-alone Python script.

Name: TerrainToTin Example
Description: This script demonstrates how to use the 
             TerrainToTin tool.

# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Set Local Variables
inTerrain = "sample.gdb/featuredataset/terrain"
pyrRes = 6
maxNodes = 5000000
clipExtent = False
# Ensure output name is unique
outTIN = arcpy.CreateUniqueName("tin")

#Execute TerrainToTin
arcpy.TerrainToTin_3d(inTerrain, outTIN, pyrRes, maxNodes, clipExtent)
del arcpy

Licensing information

  • Basic: Requires 3D Analyst
  • Standard: Requires 3D Analyst
  • Advanced: Requires 3D Analyst

Related topics