ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Core.Geometry Namespace / PolylineBuilderEx Class / SplitPartAtDistance Method
0 based index of the part. Last part is PartCount - 1.
the distance from the From point to insert the vertex.
True to treat the distance as a ratio (or %) of the part length.
(Optional) Specifies whether a new part is to be created when the part is split. The default value is false.
Example

In This Topic
    SplitPartAtDistance Method (PolylineBuilderEx)
    In This Topic
    Introduces a new vertex point to the part specified by partIndex at a specified distance from the From point of the curve. For a split to happen, the split distance must be between the From and To points of the part. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    public int SplitPartAtDistance( 
       int partIndex,
       double distance,
       bool asRatio,
       bool createPart
    )
    Public Function SplitPartAtDistance( _
       ByVal partIndex As Integer, _
       ByVal distance As Double, _
       ByVal asRatio As Boolean, _
       Optional ByVal createPart As Boolean _
    ) As Integer

    Parameters

    partIndex
    0 based index of the part. Last part is PartCount - 1.
    distance
    the distance from the From point to insert the vertex.
    asRatio
    True to treat the distance as a ratio (or %) of the part length.
    createPart
    (Optional) Specifies whether a new part is to be created when the part is split. The default value is false.

    Return Value

    The new segment index.
    Exceptions
    ExceptionDescription
    This method or property must be called within the lambda passed to QueuedTask.Run.
    The distance is less than zero.
    Example
    Split Polyline at distance
    // create list of points
    MapPoint startPt = MapPointBuilderEx.CreateMapPoint(1.0, 1.0);
    MapPoint endPt = MapPointBuilderEx.CreateMapPoint(2.0, 1.0);
    
    List<MapPoint> list = new List<MapPoint>();
    list.Add(startPt);
    list.Add(endPt);
    
    // BuilderEx constructors don't need to run on the MCT.
    
    // use the PolylineBuilder as we wish to manipulate the geometry
    // use AttributeFlags.None as we have 2D points
    PolylineBuilderEx polylineBuilder = new PolylineBuilderEx(list, AttributeFlags.None);
    // split at a distance 0.75
    polylineBuilder.SplitAtDistance(0.75, false);
    // get the polyline
    Polyline p = polylineBuilder.ToGeometry();
    // polyline p should have 3 points  (1,1), (1.75, 1), (2,1)
    
    // add another path
    MapPoint p1 = MapPointBuilderEx.CreateMapPoint(4.0, 1.0);
    MapPoint p2 = MapPointBuilderEx.CreateMapPoint(6.0, 1.0);
    MapPoint p3 = MapPointBuilderEx.CreateMapPoint(7.0, 1.0);
    List<MapPoint> pts = new List<MapPoint>();
    pts.Add(p1);
    pts.Add(p2);
    pts.Add(p3);
    
    polylineBuilder.AddPart(pts);
    p = polylineBuilder.ToGeometry();
    
    // polyline p has 2 parts.  Each part has 3 points
    
    // split the 2nd path half way - dont create a new path
    polylineBuilder.SplitPartAtDistance(1, 0.5, true, false);
    
    p = polylineBuilder.ToGeometry();
    
    // polyline p still has 2 parts; but now has 7 points 
    
    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 8.1

    See Also