ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Framework Namespace / IPlugInWrapper Interface
Members Example Version

IPlugInWrapper Interface
The public interface for DAML defined controls.
Syntax
public interface IPlugInWrapper 
Remarks
Controls defined in DAML and added to the ribbon control are not directly accessible by other clients. Instead, 3rd parties can use FrameworkApplication.GetCommandWrapper to access a limited set of functionality such as updating a command's caption at run-time.
Example
Programmatically start Edit Annotation
var plugin = FrameworkApplication.GetPlugInWrapper("esri_editing_EditVerticesText");
if (plugin.Enabled)
  ((ICommand)plugin).Execute(null);
Execute a command
IPlugInWrapper wrapper = FrameworkApplication.GetPlugInWrapper("esri_editing_ShowAttributes");
var command = wrapper as ICommand; // tool and command(Button) supports this

if ((command != null) && command.CanExecute(null))
  command.Execute(null);
Set the current tool
// use SetCurrentToolAsync
FrameworkApplication.SetCurrentToolAsync("esri_mapping_selectByRectangleTool");

// or use ICommand.Execute
ICommand cmd = FrameworkApplication.GetPlugInWrapper("esri_mapping_selectByRectangleTool") as ICommand;
if ((cmd != null) && cmd.CanExecute(null))
  cmd.Execute(null);
How to get the job Id associated with a running OpenProProjectItems step
// Get the job Id associated with a running OpenProItems step for a Pro Add-In module

// In the Add-In Module class, override the ExecuteCommandArgs(string id) method and return a Func<Object[], Task> object like the sample below
// Refer to the Workflow Manager ProConcepts Sample Code link for an example

//protected override Func<Object[], Task> ExecuteCommandArgs(string id)
//{
//    return func1;
//}

Func<Object[], Task> func1 = (object[] args) => QueuedTask.Run(() =>
{
    try
    {
        // Get the jobId property from the OpenProProjectItemsStep arguments and store it.
        OpenProProjectItemsStepCommandArgs stepArgs = (OpenProProjectItemsStepCommandArgs)args[0];
        var jobId = stepArgs.JobId;
        ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show($"Got job id from ProMappingStep args: {jobId}", "Project Info");

        // Run the command specified by the id passed into ExecuteCommandArgs
        IPlugInWrapper wrapper = FrameworkApplication.GetPlugInWrapper(id);
        var command = wrapper as ICommand;
        if (command != null && command.CanExecute(null))
            command.Execute(null);
    }
    catch (System.Exception e)
    {
        ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show($"ERROR: {e}", "Error running command");
    }
});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also