Autodesk Exchange Apps - Information for Autodesk Revit Developers
This guide is for developers and content providers new to publishing plug-ins and other content on Autodesk® Exchange Apps – either free, trial or for fee versions. It outlines best practice guidelines and a few requirements for publishers to follow when creating products for the Autodesk Exchange Apps. These guidelines are designed to ensure that users on Autodesk Exchange have a consistent experience when downloading multiple products from the store.
You will be presented with a detailed list of requirements for publishing on Exchange when you first register to be a publisher on Autodesk Exchange Apps. The information that follows is a summary specific to Autodesk Revit.
For All Content Types
Most of the information we need from you is collected from the product submission form that you complete in the publisher system. This includes gathering information to auto-generate a 'quick start' page in HTML format that is included with the download of your product and is viewable online. Other requirements are:
- Compatibility: Your product must be relevant to (and usable with) Autodesk® Revit® 2014 software, and must run on any Windows operating system supported by Revit® 2014 (including 32- and 64-bit versions). You may also indicate the compatibility with Revit 2013. Your product may be compatible with any Revit 2014 based vertical application (i.e., Autodesk® Revit®, Autodesk® Revit® Architecture, Autodesk® Revit® Structure, and Autodesk® Revit® MEP). If it is not compatible with all Revit verticals, then please specify in your submission which Revit vertical it is compatible with.
- HTML help page: The documentation information you provide as part of the submission process is used to populate a standard, auto-generated HTML page. This information must allow the user to quickly understand how to use your product. You can reference additional information (for example, additional help files posted on your website) from this standard documentation. The auto-generated HTML page will be populated using information you provide when submitting your product to the store – you will be prompted to supply it as part of the submission process.
- User privileges: The default user privilege for the store apps is Windows 7/Windows 8 Admin User. The installer we create for your app will require elevated user privileges. If you do not wish to have elevated user privileges for your app installer or don't use the standard installer template we provide, then this must be very clearly documented in the description of your product displayed on the store.
- Ready to run: Your product must be "ready to run" as soon as it's installed. It must not require the user to manually copy or register files, or manually edit Revit settings (such as support paths).
- If you use a licensing system, then it must allow your product to run as soon as it is installed by the user. This means that your application allows either instant activation (e.g., online activation), or full functionality with a time-bombed "grace period" that is long enough for you to send activation information to the customer.
- Product Stability: Your product should be stable, and not behave or alter the behavior of Revit in a way that we deem unsuitable (for example, blocking standard Revit functionality, blocking the functionality of another plug-in, causing data loss, etc.).
Additional requirements for plug-ins are:
- You must use an add-in manifest as the loading mechanism.
- Your plug-in must include a ribbon button to access your main command. If your application has many buttons, you may also choose to have a separate custom ribbon tab.
Additional requirements for family libraries are:
- Your Family Library must include a ribbon button to the Revit ribbon bar. The ribbon bar UI must either provide access to the family library or launch a help file explaining how to access it.
- Your family libraries (in rfa file format) must be installed in the following folder:
Windows 7 (Revit 2013/2014)/Windows 8 (Revit 2014 64-bit only): %PUBLIC%\Documents\Autodesk\Downloaded Content
(typically C:\Users\Public\Documents\Autodesk\Downloaded Content).
Windows XP (Revit 2013 only): %ALLUSERSPROFILE%\Documents\Autodesk\Downloaded Content
(typically C:\Documents and Settings\All Users\Documents\Autodesk\Downloaded Content)
Note: This is to be consistent with other Autodesk products - for a repeatable cross-product user experience (for example, when using products in a Suite).
Again, we'll create the installer for you and we can help you modify your libraries so that they work in this new location.
Standalone Applications and Other Contents
There are no additional requirements for products that are not integrated with Revit. If you wonder what kinds of products this might include – consider eBooks, video tutorials, industry specific calculators, connectors to Cloud based services and the like.
Use of the bundle and XML file for Revit 2014 plug-in
As a default location, we’ll be using All user location to place the add-in manifest:
The plug-in files will be contained in a specific folder called “<your application name>.bundle” and a PackageContents.xml file (created by the installer we create for your app) will be stored within this .bundle folder together with the contents that you need for your application:
PackageContents.xml contains the following xml tag (among other tags that controls the information of about the installer), and further points to your .addin manifest within your bundle folder.
Revit 2014 looks into the contents of the .bundle folder, read the PackageContents.xml file and look for “ModuleName” or the location of .addin file that further defines Revit specific information about plug-ins.
As an example, if you place your .addin manifest and assembly dll under the Contents folder, your folder structure may look like this with the above xml tag:
Use of the Add-in Manifest for Revit 2013 plug-in
As a default location, we’ll be using all-user location to place the add-in manifest:
In addition to the add-in manifest, a folder containing all the supporting materials that your plug-in needs will also be placed in the same location. The name of the folder is exactly the same as the name of the add-in manifest except that it has “.bundle” instead of “.addin”. e.g.:
The Add-in manifest accepts relative path in the <Assembly/> tag:
In this way, your plug-in can be simply installed by copying files without requiring the add-in manifest to be modified during installation.
To see how the installed app looks, you can download some of the free plug-ins already available on Autodesk Exchange store and study their format. For example, the following Autodesk Plugins of the Month are currently available:
- Duct Fitting Table Viewer
- Filer Upgrader
- String Search
- Wall Opening Area
Use a Registered Developer Symbol
We strongly recommend you prefix your filenames with your Registered Developer Symbol (RDS) to avoid potential naming conflict with other plug-ins. You can reserve an RDS for free at www.autodesk.com/symbolreg. (If you don't use an RDS, and your plug-in files clash with another plug-in, then we will ask you to rename your files).
This applies to contents (such as family libraries) as well as plug-in modules.
Use the Ribbon
Using ribbon elements for your application is requirement, but how you do this will depend on your plug-in design. As a minimum, every plug-in or family library must add a panel to the 'Add-Ins' tab that either invokes the main command defined by the plug-in or displays a help file explaining how to use the family library.
However, if your plug-in defines more than one command, then you will have to create ribbon layout for your plug-in in a way that is most helpful to the user (for example, using large buttons for most frequently used commands and small buttons for lesser used commands).
- Plug-ins that install a single panel should normally add that panel to the 'Add-Ins' tab.
- Plug-ins that creates several ribbon bar panels may prefer to create a new tab specific to that Plug-In (and preferably with the Tab name being the name of the plug-in).
Use the Contextual Help (F1 Help) with a Ribbon Item
Revit API supports Contextual or F1 Help. Please refer to the RibbonItem.SetContextualHelp() method and the ContextualHelp class in the Revit API documentation. The Autodesk Plug-in of the Month sample apps posted to the Exchange Apps store demonstrate how to implement F1 help.
We encourage you to use a help mechanism that is consistent with the Revit help, such as tooltips and contextual help placed on a ribbon item. The options supported for contextual help include linking to an external URL, launching a locally installed help file, or linking to a topic on the Autodesk help wiki.
End User License Agreement
The installer that the ADN team creates for your app includes a button that allows the user to view the standard End User License Agreement (EULA) during the app installation.
Note: This EULA is NOT modifiable. If you wish to include your own EULA to your app, you can either:
- reference your EULA from the standard HTM help file text, or
- display your EULA when the app runs for the first time, and require the user to accept it before the app will work.
If your app or content has any special requirements and the standard installer template cannot handle as is, please talk to us.
For example, if you have specific requirements for your app to be written to a single-user, we can create the installer that install only to the current user.
For any other special needs that require a custom installation, you can provide them in the form of Windows Installer Merge Modules (.msm) files. We will merge your msm file with the Windows Installer (.msi) file that we create for your app. Examples of such a scenario would be: writing entries to the registry for a licensing system you are using, installing dependent components by other vendors, and running custom scripts. For additional information, please contact us at email@example.com.
The series of videos below explain and demonstrate the process of publishing Revit Apps to the Autodesk Exchange Store for Revit:
Autodesk Exchange for Autodesk® Revit®
Publish Your Revit Apps to Autodesk Exchange Store
|Topics||Length (min:sec)||Format |
video and ppt
|1. Goals and Agenda||1:33||Video, ppt|
|2. Store Overview||4:19||Video, ppt|
|3. Preparing Apps for the Store: Guidelines||8:30||Video, ppt|
|4. Preparing Publishing Information||5:10||Video, ppt|
|5. Submission Process||9:13||Video, ppt|
|6. Publishing Revit 2013 Apps||2:37||Video, ppt|
|7. FAQ||3:49||Video, ppt|
|8. Summary||1:57||Video, ppt|
|9. Multi-Language Considerations||6:49||Video, ppt|
The ADN team is here to help you be a successful publisher on Autodesk Exchange store. We’ll do whatever we can do to help you. You are welcome to email firstname.lastname@example.org if you have any further questions after reviewing these guidelines and the other documentation on www.autodesk.com/developapps.
Thank you for participating on Autodesk Exchange Apps.