ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Editing Namespace / EditOperation Class / AddAttachment Method / AddAttachment(MapMember,Int64,String) Method
The MapMember (layer or standalone table) of the row to add an attachment to.
The object identifier of the row to add an attachment to.
The filesystem path to the file to attach to the row.
Example

In This Topic
    AddAttachment(MapMember,Int64,String) Method
    In This Topic
    Add an attachment to a row/feature with attachment support.
    Syntax
    public void AddAttachment( 
       MapMember mapMember,
       long oid,
       string filePath
    )
    Public Overloads Sub AddAttachment( _
       ByVal mapMember As MapMember, _
       ByVal oid As Long, _
       ByVal filePath As String _
    ) 

    Parameters

    mapMember
    The MapMember (layer or standalone table) of the row to add an attachment to.
    oid
    The object identifier of the row to add an attachment to.
    filePath
    The filesystem path to the file to attach to the row.
    Example
    Edit Operation Chain Edit Operations
    //Chaining operations is a special case. Use "Chained Operations" when you require multiple transactions 
    //to be undo-able with a single "Undo".
    
    //The most common use case for operation chaining is creating a feature with an attachment. 
    //Adding an attachment requires the object id (of a new feature) has already been created. 
    var editOperation1 = new EditOperation() { Name = string.Format("Create point in '{0}'", CurrentTemplate.Layer.Name) };
    
    long newFeatureID = -1;
    //The Create operation has to execute so we can get an object_id
    var token2 = editOperation1.Create(this.CurrentTemplate, polygon);
    
    //Must be within a QueuedTask
    editOperation1.Execute(); //Note: Execute and ExecuteAsync will return true if the operation was successful and false if not
    if (editOperation1.IsSucceeded)
    {
      newFeatureID = (long)token2.ObjectID;
      //Now, because we have the object id, we can add the attachment.  As we are chaining it, adding the attachment 
      //can be undone as part of the "Undo Create" operation. In other words, only one undo operation will show on the 
      //Pro UI and not two.
      var editOperation2 = editOperation1.CreateChainedOperation();
      //Add the attachment using the new feature id
      editOperation2.AddAttachment(this.CurrentTemplate.Layer, newFeatureID, @"C:\data\images\Hydrant.jpg");
      //Execute the chained edit operation. editOperation1 and editOperation2 show up as a single Undo operation
      //on the UI even though we had two transactions
      editOperation2.Execute();
    }
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also