ArcGIS Pro 2.6 API Reference Guide
Intersection(Geometry,Geometry) Method
Example 

ArcGIS.Core.Geometry Namespace > GeometryEngine Class > Intersection Method : Intersection(Geometry,Geometry) Method
The first geometry.
The second geometry.
Constructs the set-theoretic intersection between two geometries.
Syntax
public Geometry Intersection( 
   Geometry geometry1,
   Geometry geometry2
)
Public Overloads Function Intersection( _
   ByVal geometry1 As Geometry, _
   ByVal geometry2 As Geometry _
) As Geometry

Parameters

geometry1
The first geometry.
geometry2
The second geometry.

Return Value

A geometry that represents the intersection of the two input geometries. The dimension of the returned geometry will be the lowest dimension of the input geometries. For example, if geometry1 is a MapPoint and geometry2 is a Polyline, the returned geometry will be a MapPoint. If the dimension of the intersection is not equal to the lowest dimension of the input geometries, an empty geometry will be returned. For example, suppose that geometry1 is a Polyline and geometry2 is a Polyline, and they cross each other at two points. The intersection is a Multipoint, but an empty Polyline will be returned. In this case, if you want the returned geometry to be the Multipoint where the input geometries intersect, use Intersection(Geometry,Geometry,GeometryDimension).
Exceptions
ExceptionDescription
Either geometry1 or geometry2 or both are null or empty.
The method is not implemented for GeometryBag.
Incompatible spatial references between the input geometries.
Remarks
If an input geometry is a Multipatch, then the Multipatch footprint will be used to determine the intersection.

GeometryEngine Intersection

Example
// determine intersection between two polygons

Envelope env1 = EnvelopeBuilder.CreateEnvelope(new Coordinate2D(3.0, 2.0), new Coordinate2D(6.0, 6.0));
Polygon poly1 = PolygonBuilder.CreatePolygon(env1);

Envelope env2 = EnvelopeBuilder.CreateEnvelope(new Coordinate2D(1.0, 1.0), new Coordinate2D(4.0, 4.0));
Polygon poly2 = PolygonBuilder.CreatePolygon(env2);

Polygon polyResult = GeometryEngine.Instance.Intersection(poly1, poly2) as Polygon;
// determine intersection between two polylines

List<MapPoint> pts = new List<MapPoint>();
pts.Add(MapPointBuilder.CreateMapPoint(1.0, 1.0));
pts.Add(MapPointBuilder.CreateMapPoint(3.0, 3.0));
pts.Add(MapPointBuilder.CreateMapPoint(5.0, 1.0));

Polyline line1 = PolylineBuilder.CreatePolyline(pts);

List<MapPoint> pts2 = new List<MapPoint>();
pts2.Add(MapPointBuilder.CreateMapPoint(1.0, 3.0));
pts2.Add(MapPointBuilder.CreateMapPoint(3.0, 1.0));
pts2.Add(MapPointBuilder.CreateMapPoint(5.0, 3.0));

Polyline line2 = PolylineBuilder.CreatePolyline(pts2);

bool intersects = GeometryEngine.Instance.Intersects(line1, line2);    // intersects = true
Geometry g = GeometryEngine.Instance.Intersection(line1, line2, GeometryDimension.esriGeometry0Dimension);
Multipoint resultMultipoint = g as Multipoint;

// result is a multiPoint that intersects at (2,2) and (4,2)
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 7

See Also

Reference

GeometryEngine Class
GeometryEngine Members
Overload List