ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / Map Class / GetElevationProfileFromSurfaceAsync Method / GetElevationProfileFromSurfaceAsync(IEnumerable<Polyline>,ElevationSurfaceLayer) Method
A set of polylines.
Identifies the surface to be used. If null is specified, then the default Ground Surface will be used.
Example Version

GetElevationProfileFromSurfaceAsync(IEnumerable<Polyline>,ElevationSurfaceLayer) Method
Gets an elevation profile for the specified polylines. All Z values of the calculated polyline are populated from the specified Elevation Surface Layer.
Syntax

Parameters

polylines
A set of polylines.
surfaceLayer
Identifies the surface to be used. If null is specified, then the default Ground Surface will be used.

Return Value

An ElevationProfileResult. If successful, this contains the generated polyline.
Exceptions
ExceptionDescription
polylines cannot be null.
This Map does not have the specified surfaceLayer.
This Map does not have a visible Ground Surface Layer.
Remarks
If the surface has no data at a particular input geometry point, then the corresponding output geometry point Z will be set to the value specified in SurfaceZsMissingHandler.DefaultOutputZ.
Example
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
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.4 or higher.
See Also