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

In This Topic
    Load(MapMember,Int64) Method
    In This Topic
    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
    )
    Public Overloads Sub Load( _
       ByVal member As MapMember, _
       ByVal oid As Long _
    ) 

    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();
      op.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.0 or higher.
    See Also