ArcGIS Pro 3.7 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

In This Topic
    FromEsriShape Method (EnvelopeBuilderEx)
    In This Topic
    Creates a new instance of the Envelope class from an Esri shape buffer.
    Syntax
    Public Shared Function FromEsriShape( _
       ByVal esriShapeBuffer() As Byte, _
       Optional ByVal spatialReference As SpatialReference _
    ) As Envelope
    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 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also