﻿ GetSubCurve3D Method (GeometryEngine)—ArcGIS Pro
ArcGIS Pro 3.2 API Reference Guide
ArcGIS.Core.Geometry Namespace / GeometryEngine Class / GetSubCurve3D Method
The 3D multipart from which the subcurve will be extracted.
The distance along the multipart to start the subcurve.
The distance along the multipart to end the subcurve.
Indicates whether the fromDistance and toDistance are given as lengths or ratios along the multipart.
Example

In This Topic
GetSubCurve3D Method (GeometryEngine)
In This Topic
Gets the 3D subcurve of the input multipart between fromDistance and toDistance.
Syntax
```public Polyline GetSubCurve3D(
Multipart multipart,
double fromDistance,
double toDistance,
AsRatioOrLength asRatioOrLength
)```
```Public Function GetSubCurve3D( _
ByVal multipart As Multipart, _
ByVal fromDistance As Double, _
ByVal toDistance As Double, _
ByVal asRatioOrLength As AsRatioOrLength _
) As Polyline```

#### Parameters

multipart
The 3D multipart from which the subcurve will be extracted.
fromDistance
The distance along the multipart to start the subcurve.
toDistance
The distance along the multipart to end the subcurve.
asRatioOrLength
Indicates whether the fromDistance and toDistance are given as lengths or ratios along the multipart.

#### Return Value

The 3D polyline representing the subcurve.
Exceptions
ExceptionDescription
Multipart is null or empty.
This geometry is not Z-Aware.
Cannot do 3D operations on curve segments.
Example
Get Sub-curve of a polyline or polygon
```SpatialReference sr = SpatialReferences.WGS84;

List<Coordinate2D> coords = new List<Coordinate2D>()
{
new Coordinate2D(-111, 72),
new Coordinate2D(-108, 68),
new Coordinate2D(-114, 68)
};

Polyline polyline = PolylineBuilderEx.CreatePolyline(coords, sr);

Polyline subCurve = GeometryEngine.Instance.GetSubCurve(polyline, 0, 5, AsRatioOrLength.AsLength);
// subCurve.PartCount = 1
// subCurve.PointCount = 2

// points = -111, 72
// points = -108, 68

subCurve = GeometryEngine.Instance.GetSubCurve(polyline, 0, 0.5, AsRatioOrLength.AsRatio);
// subCurve.PointCount = 3

points = subCurve.Points;
// points = -111, 72
// points = -108, 68
// points = -108.5, 68

List<Coordinate3D> coords3D = new List<Coordinate3D>()
{
new Coordinate3D(0, 0, 0),
new Coordinate3D(0, 1, 1),
new Coordinate3D(1, 1, 2),
new Coordinate3D(1, 0, 3)
};

Polygon polygon = PolygonBuilderEx.CreatePolygon(coords3D, sr);

subCurve = GeometryEngine.Instance.GetSubCurve3D(polygon, 0, 1, AsRatioOrLength.AsLength);
// subCurve.HasZ = true

points = subCurve.Points;
// points.Count = 2
// points = 0, 0, 0
// points = 0, 0.70710678118654746, 0.70710678118654746
```
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.