AddInsassociate a feature or feature-set, represented by an ObjectTypeto the Node(an Objector ObjectType) they are applied to. The Interfacemodel is different than the AddInmodel in that it is based on composition. An AddInis applied to a Nodeby adding a Referenceto the AddIninstance.

There are no restrictions for AddIn ObjectTypesand there is no special supertype for AddIns. To identify instances as an AddIn, the HasAddIn Referenceor a subtype shall be used.

The AddIn ObjectTypeshall include the definition of a default BrowseNameusing the DefaultInstanceBrowseName Property. Instances of such an AddInshould use this default BrowseName. If an AddInis instantiated multiple times in the same parent, only one instance can have the default BrowseName.

The definition of an AddInand its use with a default BrowseNameis illustrated in Figure 12.

image015.png

Figure 12– Example of AddIn with default BrowseName

As already described, an AddIncan be applied on types and instances. The use on an instance is shown in Figure 13.

image016.png

Figure 13– Example of AddIn applied to an instance

Clientscan detect the implementation of AddInsby passing the HasAddIn Referenceas filter to the Browse Servicerequest. If an AddInhas a default BrowseName, Clientscan use the TranslateBrowsePathsToNodeId Servicewith the default BrowseNameto get the NodeIdof an AddIn.

In the example in Figure 12the relative path “MyFeature/MyPropertyM” with the starting node MD002can be used to request the NodeIdof this Propertyand the relative path “MyFeature/MyMethodO” can be used for the respective Method.