APP STORE

AUTODESK DEVELOPER NETWORK

The Autodesk App Store - Information for Navisworks Developers

Autodesk® Navisworks® Manage and Autodesk® Navisworks® Simulate support Apps delivered by the Autodesk App Store. Apps can be used to add both.NET API plugins and NWcreate plugins.

Getting started

Production Apps will be delivered as an MSI installer that is produced after you submit your App to (The Autodesk App Store). However, it is possible to test your App by simulating what the installer would do, and simply copying your deliverables into the correct place on disk. No registration is required. Here we describe how to produce an App that includes a .NET API plugin.

Prerequisites

    • The non-registration mechanism can work from Navisworks 2015. While our .NET API of one release is only compatible within one major version. So if your application will support multi-releases, you will need to compile the binaries with each version of .NET API and package them together. The instruction below will indicate how to specify the corresponding binary.
    • You will need Microsoft Visual Studio 2017 or later and .NET Framework = 4.7 and higher version

Locations

Two root folders are supported for loading Autodesk Apps. Note that it is not just Navisworks that uses these folders; all Autodesk products share them. The per-user root folder is:

  • %APPDATA%\Autodesk\ApplicationPlugins

Whilst the per-machine root folder is:

  • %PROGRAMDATA%\Autodesk\ApplicationPlugins

Apps installed in the per-user folder will only be available for that user, whereas Apps installed in the per-machine folder will be available for all users.

User privileges

The default user privilege for the store apps is Windows 7/8.1/10/11 Admin User. The installer should have elevated user privileges.

Your 'bundle'

Inside one of the above root folders you need to create a uniquely named folder whose name ends in “.bundle”. Directly inside this folder should be a configuration file named “PackageContents.xml”. There should also be a “Contents” subfolder where you put your deliverables.

So, the minimum ‘development’ installation would have 2 files, and be along the lines of:

  • %APPDATA%\Autodesk\ApplicationPlugins\ADSK.MyApp.bundle\ PackageContents.xml
  • % APPDATA %\Autodesk\ApplicationPlugins\ ADSK.MyApp.bundle \ Contents\ v14\ ADSK. MyPlugin.dll

Notes:

  • This assumes we target at a bundle with binary of Navisworks 2022 only, where ‘v19’ is just a name of the sub folder to deploy the binary that is compiled with .NET API of 2017. If a binary of 2023, it can be ‘v20’.
  • Real installations will probably require more than 2 files, as they will contain documentation, icons, etc.
  • Real installations will require “ADSK” to be replaced by your unique ADN Developer ID. Recommend to name this ID by reversed version of your domain name, e.g. com.autodesk or uk.co.autodesk
  • Your folder name must be unique across all Autodesk bundles. Prefixing with your own unique Developer ID is a good starting point.
  • The name of each DLL you install must be unique within a running session of Navisworks. It must not clash with DLLs that Navisworks installs, or with those provided by any other Apps. Prefixing with your unique Developer ID is a good starting point.

PackageContents.xml

The minimum ‘development’ configuration file will be along the lines of:

<?xml version="1.0" encoding="utf-8"?>

<?xml version="1.0" encoding="utf-8"?>

<ApplicationPackage > 

  <Components Description="2023 parts">

    <RuntimeRequirements OS="Win64" Platform="NAVMAN|NAVSIM" SeriesMin="Nw20" SeriesMax="Nw20" />

    <ComponentEntry AppType="ManagedPlugin"ModuleName="./Contents/v20/ADSK.MyPlugin.v20.dll">    

    </ComponentEntry>

  </Components>

  <Components Description="2022 parts">

    <RuntimeRequirements OS="Win64" Platform="NAVMAN|NAVSIM" SeriesMin="Nw19" SeriesMax="Nw19"  />

     <ComponentEntry AppType="ManagedPlugin"ModuleName="./Contents/v19/ADSK.MyPlugin.v19.dll">    

  </Components>

</ApplicationPackage>

This example specifies a single ‘Component’:

  • OS="Win64": This component works for 64-bit product only.
  • Platform="NAVMAN|NAVSIM": This component works in both Navisworks Manage and Navisworks Simulate.
  • SeriesMin="Nw18" SeriesMax="Nw18": Nw18 means this component works for Navisworks 2021 version. As said above, our .NET API of on release is only compatible within one major version. Similarly, Nw17 means this is a component that works with Navisworks 2020.
  • AppType="ManagedPlugin": This component is a managed .NET assembly that contains plugins targeted at the Navisworks .NET API.
  • ModuleName="./Contents/v16/ADSK.MyPlugin.dll": Specifies the relative path to the components .NET Assembly. We’ve put it in a ‘v16’ folder signifying it’s targeted at “Navisworks 2019” only. You can put specific release of binary in specific folders, or name them uniquely in one folder.

Notes:

  • Real configuration files will require more content than this.
  • The <ApplicationPackage> element can contain multiple <Components> elements. Each component can target a different Platform and Series.

ADSK.MyPlugin.dll

In this example the DLL pointed to by ModuleName is a managed .NET assembly. This could be written as a C# ‘Class Library’ and could contain a basic “Hello World” AddInPlugin as defined in the following code.
using Autodes.Navisworks.Api.Plugins;
...
 [PluginAttribute("MyPlugin", "ADSK", DisplayName = "Myplugin : Hello World")]
 [AddInPluginAttribute(AddInLocation.AddIn)]
 public class Myplugin : AddInPlugin
{
 public override int Execute(params string[] parameters)
 {
  MessageBox.Show("hello World");
  return 0;
}
}
...

Notes:

  • You will have to add a reference to %PROGRAMFILES%\Autodesk\Navisworks Manage <release number>\Autodesk.Navisworks.Api.dll. (‘CopyLocal’ should be set to False).
  • Real code should use your own unique Developer ID.

NWcreate ‘File loader’ support.

Components can also specify that the DLL is an NWcreate style ‘File loader’. To do this use AppType="NativeLoader".

More information

The ADN team is here to help you be a successful publisher on the Autodesk App Store. We’ll do whatever we can do to help you. You are welcome to email appsubmissions@autodesk.com if you have any further questions after reviewing these guidelines and the other documentation on www.autodesk.com/developapps.

Thank you for participating on the Autodesk App Store.

For reference of those developers who want to pop out F1 help with the plugin: currently, the way is to hook up F1 by Windows API to display your own help page.

Resources

ACCESS AUTODESK SOFTWARE FOR FREE

Trial versions are available for most Autodesk products. Download your free 30-days trial version today. You can obtain Autodesk desktop software for development use on an on-going basis by joining ADN at the Standard or Professional membership level too.

AUTODESK CLOUD TECHNOLOGIES

All the information and resources needed to use Autodesk cloud-based software and components in your own web and mobile applications can be found on the Autodesk Forge Developer Portal. Get easy access to Forge APIs and documentation, tutorials, GitHub samples, support and more.

Follow on:

Welcome ${RESELLERNAME} Customers

Please opt-in to receive reseller support

I agree that Autodesk may share my name and email address with ${RESELLERNAME} so that ${RESELLERNAME} may provide installation support and send me marketing communications.  I understand that the Reseller will be the party responsible for how this data will be used and managed.

Email is required Entered email is invalid.

${RESELLERNAME}