ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data.Analyst3D Namespace / Terrain Class / GetDefinition Method
Example Version

GetDefinition Method (Terrain)
Gets the TerrainDefinition of this terrain dataset. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
public new TerrainDefinition GetDefinition()

Return Value

The TerrainDefinition of this terrain.
Example
Get a Terrain Definition
public async Task GetTerrainDefinition()
{
  try
  {
    await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    {
      string path = @"d:\Data\Terrain\filegdb_Containing_A_Terrain.gdb";
      var fileConnection = new FileGeodatabaseConnectionPath(new Uri(path));

      using (Geodatabase dataStore = new Geodatabase(fileConnection))
      {
        string dsName = "nameOfTerrain";

        using (var terrainDef = dataStore.GetDefinition<ArcGIS.Core.Data.Analyst3D.TerrainDefinition>(dsName))
        {
          // get the feature class names that are used in the terrain
          var fcNames = terrainDef.GetFeatureClassNames();
        }
      }
    });
  }
  catch (GeodatabaseNotFoundOrOpenedException exception)
  {
    // Handle Exception.
  }
}
Retrieve dataset objects
//Must be on the QueuedTask.Run()

Envelope extent;
SpatialReference sr;
using (var tin = tinLayer.GetTinDataset())
{
  using (var tinDef = tin.GetDefinition())
  {
    extent = tinDef.GetExtent();
    sr = tinDef.GetSpatialReference();
  }
}

using (var terrain = terrainLayer.GetTerrain())
{
  using (var terrainDef = terrain.GetDefinition())
  {
    extent = terrainDef.GetExtent();
    sr = terrainDef.GetSpatialReference();
  }
}

using (var lasDataset = lasDatasetLayer.GetLasDataset())
{
  using (var lasDatasetDef = lasDataset.GetDefinition())
  {
    extent = lasDatasetDef.GetExtent();
    sr = lasDatasetDef.GetSpatialReference();
  }
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.2 or higher.
See Also