ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / ElevationProfileResult Class / Polyline Property
Example Version

Polyline Property (ElevationProfileResult)
Gets the elevation profile polyline, provided the Status is SurfaceZsResultStatus.Ok. The polyline is null if no elevation profile cane be determined.
Syntax
public Polyline Polyline {get;}
Example
Get Elevation profile from the default ground surface
// find the elevation profile for a polyline / set of polylines
var result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync([lineGeom]);
if (result.Status == SurfaceZsResultStatus.Ok)
{
  var polylineZ = result.Polyline;

  // process the polylineZ
}

// find the elevation profile for a set of points
result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(pts);
if (result.Status == SurfaceZsResultStatus.Ok)
{
  var polylineZ = result.Polyline;

  // process the polylineZ
}
Get Elevation profile from a specific surface
// find the elevation profile for a polyline / set of polylines
var eleLayer = MapView.Active.Map.GetElevationSurfaceLayers().FirstOrDefault(l => l.Name == "TIN");
var zResult = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync([lineGeom], eleLayer);
if (zResult.Status == SurfaceZsResultStatus.Ok)
{
  var polylineZ = zResult.Polyline;

  // process the polylineZ
}

// find the elevation profile for a set of points
zResult = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(pts, eleLayer);
if (zResult.Status == SurfaceZsResultStatus.Ok)
{
  var polylineZ = zResult.Polyline;

  // process the polylineZ
}
Interpolate a line between two points and calculate the elevation profile
int numPoints = 20;

// use the default ground elevation surface
var result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(startPt, endPt, numPoints);
if (result.Status == SurfaceZsResultStatus.Ok)
{
  var polylineZ = result.Polyline;

  // process the polylineZ
}

// use a specific elevation surface
var eleLayer = MapView.Active.Map.GetElevationSurfaceLayers().FirstOrDefault(l => l.Name == "TIN");
result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(startPt, endPt, numPoints, eleLayer);
if (result.Status == SurfaceZsResultStatus.Ok)
{
  var polylineZ = result.Polyline;

  // process the polylineZ
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.4 or higher.
See Also