ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Editing.Attributes Namespace / Inspector Class / Load Method / Load(MapMember,Int64) Method
mapMember
object ID
Example Version

Load(MapMember,Int64) Method
Load a single feature into the inspector. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
public void Load( 
   MapMember member,
   long oid
)

Parameters

member
mapMember
oid
object ID
Exceptions
ExceptionDescription
This method or property must be called within the lambda passed to QueuedTask.Run.
Example
Get selected feature's attribute value
QueuedTask.Run(() =>
{

  // get the currently selected features in the map
  var selectedFeatures = ArcGIS.Desktop.Mapping.MapView.Active.Map.GetSelection();

  // get the first layer and its corresponding selected feature OIDs
  var firstSelectionSet = selectedFeatures.ToDictionary().First();

  // create an instance of the inspector class
  var inspector = new ArcGIS.Desktop.Editing.Attributes.Inspector();

  // load the selected features into the inspector using a list of object IDs
  inspector.Load(firstSelectionSet.Key, firstSelectionSet.Value);

  //get the value of
  var pscode = inspector["STATE_NAME"];
  var myGeometry = inspector.Shape;
});
Read from a raster field
QueuedTask.Run(() =>
{
  var sel = MapView.Active.Map.GetSelection();

  //Read a raster from a raster field as an InteropBitmap
  //the bitmap can then be used as an imagesource or written to disk
  var insp = new ArcGIS.Desktop.Editing.Attributes.Inspector();
  insp.Load(sel.ToDictionary().Keys.First(), sel.ToDictionary().Values.First());
  var ibmp = insp["Photo"] as System.Windows.Interop.InteropBitmap;
});
Write an image to a raster field
QueuedTask.Run(() =>
{
  var sel = MapView.Active.Map.GetSelection();

  //Insert an image into a raster field
  //Image will be written with no compression
  var insp = new ArcGIS.Desktop.Editing.Attributes.Inspector();
  insp.Load(sel.ToDictionary().Keys.First(), sel.ToDictionary().Values.First());
  insp["Photo"] = @"e:\temp\Hydrant.jpg";

  var op = new EditOperation() { Name = "Raster Inspector" };
  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
  }
});
Update Annotation Text via attribute. Caveat: The TEXTSTRING Anno attribute must exist
//See "Change Annotation Text Graphic" for an alternative if TEXTSTRING is missing from the schema
await QueuedTask.Run(() =>
{
    //annoLayer is ~your~ Annotation layer...

    // use the inspector methodology
    var insp = new Inspector();
    insp.Load(annoLayer, oid);

    // make sure TextString attribute exists.
    //It is not guaranteed to be in the schema
    ArcGIS.Desktop.Editing.Attributes.Attribute att = insp.FirstOrDefault(a => a.FieldName == "TEXTSTRING");
    if (att != null)
    {
        insp["TEXTSTRING"] = "Hello World";

        //create and execute the edit operation
        EditOperation op = new EditOperation();
        op.Name = "Update annotation";
        op.Modify(insp);

        //OR using a Dictionary - again TEXTSTRING has to exist in the schema
        //Dictionary<string, object> newAtts = new Dictionary<string, object>();
        //newAtts.Add("TEXTSTRING", "hello world");
        //op.Modify(annoLayer, oid, newAtts);

        op.Execute();
    }
});
Edit the attributes of a FeatureSceneLayer
//must support editing!
var featSceneLayer = MapView.Active.Map.GetLayersAsFlattenedList()
                   .OfType<FeatureSceneLayer>().FirstOrDefault();
if (!featSceneLayer.HasAssociatedFeatureService || 
    !featSceneLayer.IsEditable)
  return;

var ok = await QueuedTask.Run(() =>
{
  var editOp = new EditOperation()
  {
    Name = "Edit FeatureSceneLayer Attributes",
    SelectModifiedFeatures = true
  };
  //make an inspector
  var inspector = new Inspector();
  //get the attributes for the specified oid
  inspector.Load(featSceneLayer, oid);
  inspector["PermitNotes"] = "test";//modify
  editOp.Modify(inspector);
  return editOp.Execute();//synchronous flavor
});
Select features via the MapView
//assume the geometry used in SelectFeaturesEx() is coming from a 
//map tool...
//
//SketchType = SketchGeometryType.Rectangle;
//SketchOutputMode = SketchOutputMode.Screen;

await QueuedTask.Run(() =>
{
  var result = MapView.Active.SelectFeaturesEx(geometry);
  //Get scene layers with selections
  //At 2.x - var scene_layers = result.Where(kvp => kvp.Key is FeatureSceneLayer);
  var scene_layers = result.ToDictionary<FeatureSceneLayer>();
  foreach (var kvp in scene_layers)
  {
    var scene_layer = kvp.Key as FeatureSceneLayer;
    var sel_oids = kvp.Value;
    //If there are attributes then get them
    if (scene_layer.HasAssociatedFeatureService)
    {
      var insp = new Inspector();
      foreach (var oid in sel_oids)
      {
        insp.Load(scene_layer, oid);
        //TODO something with retrieved attributes
      } 
    }
  }
});
 
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also