ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Desktop.Editing.Attributes Namespace / Inspector Class
Members Example

In This Topic
    Inspector Class
    In This Topic
    Provides access to the attribute values on features and rows.
    Syntax
    Remarks

    This class is primarily used to get or set the attribute values on features or rows. Additionally it provides some meta information.
    To get or set attribute values, first load a feature or row into the class then use the class properties or attribute index/name.

    You can also use the Inspector class to obtain schema information about a mapMember. Use the LoadSchema(MapMember) or LoadSchemaAsync(MapMember) methods to obtain schema information.

    Example
    Inspector.AddValidate
    var insp = new Inspector();
    insp.LoadSchema(featLayer);
    var attrib = insp.Where(a => a.FieldName == "Mineral").First();
    
    attrib.AddValidate(() =>
    {
      if (attrib.CurrentValue.ToString() == "Salt")
        return Enumerable.Empty<ArcGIS.Desktop.Editing.Attributes.Attribute.ValidationError>();
      else return new[] { ArcGIS.Desktop.Editing.Attributes.Attribute.ValidationError.Create("Error", ArcGIS.Desktop.Editing.Attributes.Severity.Low) };
    });
    Read and Write blob fields with the attribute inspector
    QueuedTask.Run(() =>
    {
      //get selected feature into inspector
      var selectedFeatures = MapView.Active.Map.GetSelection();
    
      var insp = new Inspector();
      insp.Load(selectedFeatures.ToDictionary().Keys.First(), selectedFeatures.ToDictionary().Values.First());
    
      //read a blob field and save to a file
      var msw = new MemoryStream();
      msw = insp["Blobfield"] as MemoryStream;
      using (FileStream file = new FileStream(@"d:\temp\blob.jpg", FileMode.Create, FileAccess.Write))
      {
        msw.WriteTo(file);
      }
    
      //read file into memory stream
      var msr = new MemoryStream();
      using (FileStream file = new FileStream(@"d:\images\Hydrant.jpg", FileMode.Open, FileAccess.Read))
      {
        file.CopyTo(msr);
      }
    
      //put the memory stream in the blob field and save to feature
      var op = new EditOperation() { Name = "Blob Inspector" };
      insp["Blobfield"] = msr;
      op.Modify(insp);
      if (!op.IsEmpty)
      {
        var result = op.Execute(); //Execute and ExecuteAsync will return true if the operation was successful and false if not
      }
    });
    Inheritance Hierarchy

    System.Object
       ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
          ArcGIS.Desktop.Editing.Attributes.Inspector

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also