Jump to Navigation

How to Create an ArcGIS Universal Desktop Add-In

Thursday, October 11, 2012 - 07:45

TipWith ArcGIS 9 and the ArcGIS templates for Visual Studio 2005, one had the option of creating a universal item, that is, additional functionality in the form of a tool, command button, or extension that would work in ArcMap, ArcCatalog, ArcGlobe, and/or ArcScene.  With ArcGIS 10, the templates do not include this option.  One must choose to create an ArcMap, ArcCatalog, ArcScene, or ArcGlobe Add-In, and these choices are mutually exclusive.  If separate projects are created for each application that the tool is to be accessible in, then the end user has to download and install a separate add-in file for each application.  Not desirable.  Therefore, my question was, "How do I create one *.esriAddIn file to install them all?"  I would like to thank Chris Fox at Esri for showing me how to make this happen.  It is actually very easy, so I wanted to share this with all of you as well.  I am going to go through the steps for creating a button that works in ArcMap, ArcScene, and ArcCatalog.  ArcGlobe functionality could be added as well with the same process.

Step 1:  Create a New Project in Visual Studio, and choose one of the Add-In types.  I started with ArcMap. Give the project a name, a location, and choose the appropriate .NET Framework.

New ArcMap Project

Step 2:  Fill in the ArcGIS Add-Ins Wizard dialog screens with the applicable properties, and select the Add-in Type.  I chose a button.  Then click Finish.

 

Add-In Wizard Dialog Screens

 

This creates a project with a Config.esriaddinx file with XML elements to match the properties entered in the Add-in Wizard.  It also creates a class with the Class Name as entered on the second dialog screen above.  I named mine UniversalAddInArcMap to denote that this is the class that will contain the code for ArcMap.

 

Universal Add-In Config File

Step 3:  Add the code to the ArcMap class.  I added a simple message box to say "I work in ArcMap."  At this point, I could build the project, and I would have a command button that I could add in to ArcMap.  However, since I want a button for ArcScene and ArcCatalog as well, I'm not done yet.

Universal Add-In ArcMap Class

Step 4:  Create a new project, and choose ArcScene as the add-in type.  Once again, give the project a name, a location, and choose the appropriate .NET Framework.  The name and location are not important though, for we are going to copy items from this project and paste them into our universal add-in project that we are building.

New ArcScene Project

Step 5: Fill in the ArcGIS Add-Ins Wizard dialog screens with the applicable properties, and select the Add-in Type.  Screen 1 is not important, for none of these XML properties will be copied from the config file. 

ArcScene Add-In Wizard Dialog Screen 1

 The screen 2 properties will be copied, so they should match what was entered for the first project.  Of course they can always be edited later.

ArcScene Add-In Wizard Dialog Screen 2

Step 6:  Click Finish, and then open the Config.esriaddinx file for the ArcScene project.  Copy the XML ArcScene element.

ArcScene Project Config File

Step 7:  Paste the ArcScene element into the Universal config file as shown below.  Then edit the id property to match the name of the universal project and update the image property so that the path points to the command image in the current project.

Add XML from ArcScene Config File

Step 8:  Copy the ArcScene class from the ArcScene project and paste it into the universal project.

CopyPaste ArcScene Class

Step 9:  Add the code to the ArcScene class.

ArcScene Class Code

The universal project should now have a command button that works in ArcMap and one that works in ArcScene.  The same steps can be followed to create a button that will work in ArcCatalog (or in ArcGlobe).  The config file for a project containing buttons for ArcMap, ArcCatalog, and ArcScene should be similar to the one shown below.

Final Config File

 The ArcCatalog class would then need to be copied and pasted and the code edited.

ArcCatalog Class Code

Step 10:  Once the config file is updated and the functionality is added to each of the individual classes, the project is ready to be built.

Build Project

This creates a *.esriAddIn file that can optionally be signed with a code signing certificate applied by the ESRI Sign Add-In Utility.

Single Add-In File

 This file can then be distributed to users who only need to double-click on the file to install the add-in.  No administrative priviledges required!!! Smile

Install Add-In File

 Once installed, the add-in command can be dragged and dropped onto any toolbar through the Customize dialog box in each application.

Customize Dialog

The command button is now ready to be used.  Success!!!  One file installs them all.

Success

Hope this helps, and let me know if you have any questions,

Leslie



Main menu 2

by Dr. Radut.