ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Geometry Namespace / IGeometryEngine Interface / MultipartToSinglePart Method
The geometry to make into single component geometries
Example Version

MultipartToSinglePart Method (IGeometryEngine)
Separates the components of a geometry into single component geometries.
Syntax
IReadOnlyList<Geometry> MultipartToSinglePart( 
   Geometry geometry
)

Parameters

geometry
The geometry to make into single component geometries

Return Value

Read-only list of geometries
Exceptions
ExceptionDescription
Geometry is null.
Not implemented for Multipatch.
Spatial reference of geometryis an image coordinate system.
Remarks
A single part geometry will not be affected (i.e. it will just get passed along) with the exception of a multipoint which will become points. The number of output geometries may not equal the number of parts in the input geometry. For example, if a polygon has a hole, then the outer ring and inner ring are returned as one geometry.

If the input geometry is empty, then the returned list will contain one entry which is the input geometry.

Example
Separate components of a geometry into single component geometries
List<Coordinate2D> coords2D = new List<Coordinate2D>()
  {
    new Coordinate2D(0, 0),
    new Coordinate2D(1, 4),
    new Coordinate2D(2, 7),
    new Coordinate2D(-10, 3)
  };

Multipoint multipoint = MultipointBuilderEx.CreateMultipoint(coords2D, SpatialReferences.WGS84);

IReadOnlyList<Geometry> result = GeometryEngine.Instance.MultipartToSinglePart(multipoint);
// result.Count = 4, 


// 'explode' a multipart polygon
result = GeometryEngine.Instance.MultipartToSinglePart(multipartPolygon);


// create a bag of geometries
Polygon polygon = PolygonBuilderEx.CreatePolygon(coords2D, SpatialReferences.WGS84);
//At 2.x - GeometryBag bag = GeometryBagBuilder.CreateGeometryBag(new List<Geometry>() { multipoint, polygon });
var bag = GeometryBagBuilderEx.CreateGeometryBag(new List<Geometry>() { multipoint, polygon });
// bag.PartCount = =2

result = GeometryEngine.Instance.MultipartToSinglePart(bag);
// result.Count == 2
// result[0] is MultiPoint
// result[1] is Polygon
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also