ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data Namespace / CoreDataExtensions Class / AddActivationExtension Method
The table with which the extension id will be registered
The extension id (guid) to be registered
Example Version

AddActivationExtension Method
Registers an extension id (guid) with the specified table. This method must be called on the Main CIM Thread. Use QueuedTask.Run.
Syntax
public static void AddActivationExtension( 
   Table table,
   Guid extensionId
)

Parameters

table
The table with which the extension id will be registered
extensionId
The extension id (guid) to be registered
Exceptions
ExceptionDescription
This method or property must be called within the lambda passed to QueuedTask.Run.
Value cannot be null: table
extension id cannot be empty
Remarks
Any number of extension ids can be added to a table. Adding an extension id will limit the backward compatibility of the given table/feature class to ArcGIS Pro 3.1...meaning the given table or feature class cannot be used or referenced within ArcGIS Pro 3.0 or earlier.
As with all properties that change the minimum client version, removing all activation extension ids will re-compute the minimum required client version. So removing activation extensions potentially allows older clients to open the table (depending on what other Geodatabase functionality is enabled on the table). Refer to RemoveActivationExtension
Activation extension ids are supported on registered classes in Enterprise, File, Mobile and on ArcObjects Feature Service geodatabases.
Calling AddActivationExtension when the table is being edited will fail.
Registering an extension id (guid) with a table allows it to participate in special behaviors. One example of this is the ability to show a custom tab in the Pro Editor Attributes dockpane when rows from the table are selected. The following development process outlines how to achieve this special behavior:
  • In an add-in, implement a ArcGIS.Desktop.Editing.Attributes.AttributeTabEmbeddableControl. The associated daml entry for this class updates the “esri_editing_AttributeTabs” category. Assign a unique guid value (i.e. the "extension id") to the "guid" attribute value in the content element tag within the addin Config.daml.
  • In a separate administrative process, or within a separate addin, register the table(s) which are to show the custom tab with the same guid (i.e. "extension id") referenced in step 1 above - using the AddActivationExtension method.
Note that eve though multiple extension ids can be registered to a single table or feature class and each of these extension ids has an AttributeTabEmbeddableControl component defined (in the config.daml), only one of the registered components will be added as a custom tab in the Attributes dockpane. That is; only ONE custom tab can be displayed in the Attributes dockpane for a feature class or table.
Example
Table Extension Ids
public void ExtensionIds1(Table table)
{
    //Add an extension id to a table
    //Check documentation for restrictions on backward compatibility - backward
    //compatibility is limited to ArcGIS Pro 3.1 if an extension id is added.
    //Note: This is an extension method. It is for use in addins only and not CoreHost.
    string extension_id_string = "52d8f3be-b73d-4140-beaf-23d4f9b697ea";
    Guid extension_id = Guid.Parse(extension_id_string);

    //Note: Must be within the lambda of QueuedTask.Run(() => { ...

    //register the extension id with the relevant table
    table.AddActivationExtension(extension_id);

    //Remove an extension id from a table
    //Restores backward compatibility assuming no other compatibility limitations are
    //in place.
    //Note: This is an extension method. It is for use in addins only and not CoreHost.
    table.RemoveActivationExtension(extension_id);

    //Check if a given extension id  is registered with a particular table.
    //Note: This is an extension method. It is for use in addins only and not CoreHost.
    if (table.GetHasActivationExtension(extension_id))
    {
        //TODO - implement custom logic relevant to presence of extension_id
    }

    //Enumerate all extension ids on a given table.
    //Note: This is an extension method. It is for use in addins only and not CoreHost.
    foreach (Guid ext_id in table.GetActivationExtensions())
    {
        //TODO - logic based on extension ids
    }
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.1 or higher.
See Also