ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Geometry Namespace / EnvelopeBuilderEx Class / FromEsriShape Method
Esri shape buffer representation of Envelope. Note that the buffer will actually represent a Polygon because there is not an Esri shape buffer representation of an envelope.
(Optional)The spatial reference of the Envelope.
Example Version

FromEsriShape Method (EnvelopeBuilderEx)
Creates a new instance of the Envelope class from an Esri shape buffer.
Syntax
public static Envelope FromEsriShape( 
   byte[] esriShapeBuffer,
   SpatialReference spatialReference
)

Parameters

esriShapeBuffer
Esri shape buffer representation of Envelope. Note that the buffer will actually represent a Polygon because there is not an Esri shape buffer representation of an envelope.
spatialReference
(Optional)The spatial reference of the Envelope.

Return Value

Exceptions
ExceptionDescription
The esriShapeBuffer is empty or null.
Esri shape buffer is invalid or does not represent a polygon.
Example
Import and Export Geometries to EsriShape
// create an envelope
List<MapPoint> coordsZM = new List<MapPoint>
{
  MapPointBuilderEx.CreateMapPoint(1001, 1002, 1003, 1004),
  MapPointBuilderEx.CreateMapPoint(2001, 2002, Double.NaN, 2004),
  MapPointBuilderEx.CreateMapPoint(3001, -3002, 3003, 3004),
  MapPointBuilderEx.CreateMapPoint(1001, -4002, 4003, 4004)
};

Envelope envelope = EnvelopeBuilderEx.CreateEnvelope(
           coordsZM[0], coordsZM[2], SpatialReferences.WGS84);

// export and import
EsriShapeExportFlags exportFlags = EsriShapeExportFlags.EsriShapeExportDefaults;
EsriShapeImportFlags importFlags = EsriShapeImportFlags.EsriShapeImportDefaults;
byte[] buffer = GeometryEngine.Instance.ExportToEsriShape(exportFlags, envelope);
Polygon importedPolygon = GeometryEngine.Instance.ImportFromEsriShape(
               importFlags, buffer, envelope.SpatialReference) as Polygon;
Envelope importedEnvelope = importedPolygon.Extent;

// export without z,m
buffer = GeometryEngine.Instance.ExportToEsriShape(
        EsriShapeExportFlags.EsriShapeExportStripZs | 
        EsriShapeExportFlags.EsriShapeExportStripMs, envelope);
importedPolygon = GeometryEngine.Instance.ImportFromEsriShape(
        importFlags, buffer, SpatialReferences.WGS84) as Polygon;
importedEnvelope = importedPolygon.Extent;

bool hasZ = importedEnvelope.HasZ;      // hasZ = false
bool hasM = importedEnvelope.HasM;      // hasM = false

// export with shapeSize
int bufferSize = GeometryEngine.Instance.GetEsriShapeSize(
                                       exportFlags, envelope);
buffer = new byte[bufferSize];

bufferSize = GeometryEngine.Instance.ExportToEsriShape(
                             exportFlags, envelope, ref buffer);
importedPolygon = GeometryEngine.Instance.ImportFromEsriShape(
                    importFlags, buffer, envelope.SpatialReference) as Polygon;
importedEnvelope = importedPolygon.Extent;


// or use the envelope and envelopeBuilderEx classes
buffer = envelope.ToEsriShape();
// buffer represents a polygon as there is not an envelope Esri shape buffer
// EnvelopeBuilderEx.FromEsriShape takes a polygon Esri shape buffer and returns the extent of the polygon.
importedEnvelope = EnvelopeBuilderEx.FromEsriShape(buffer);
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also