Navisworks API Training Lab - Fundamentals

This folder contains a series of training labs for Navisworks API.

Prerequisites:

*1) If you are using other .NET languages, such as VB.NET, you should be able to follow the instruction in the labs. However, you will need to change the syntax by yourself.
*2) You can also use later version of Visual Studio. Make sure to use .NET 4.5.

Labs

  • Lab1: Overview
    In this lab, we will quickly go through Navisworks product family, basics of Navisworks API, common use case scenarios of APIs, and available learning resources.

  • Lab2: Plugins
    This lab introduces the plugin system, and demonstrate how to create a basic AddInPlugin and DockPanePlugin.

  • Lab3: Document
    This lab introduces API structure in .NET, how to manipulate Document, what document parts, document info and grids & levels are.

  • Lab4: Model
    This lab introduces model tree, model item, and how to access geometry attributes of model item.

  • Lab5: Properties
    This lab introduces the properties of objects and how to effectively find the specific properties.

  • Lab6: Search
    This lab introduces the ways to find objects, the most efficient way and various scenarios to work with Search API.

  • Lab7: Selection
    This lab introduces current selection and selection sets, and how to manipulate them.

  • Lab8: COM Interop
    This lab introduces how to work with COM API from .NET with a couple of examples, e.g. add custom properties, read geometry primitives etc.

  • Lab9: Events
    This lab introduces .NET events API.

  • Lab10: Viewpoint
    This lab introduces viewpoint and saved viewpoint. How to manipulate camera position is also discussed.

  • Lab11: .NET Control
    This lab introduces how to use Navisworks .NET controls, i.e. ApplicationControl, DocumentControl and ViewControl.

  • Samples

    Each lab has the corresponding sample(s). All of them can be opened by Lab_Examples.sln in Labs folder and can also be opened separately.

    Make sure to open Visual Studio 2012 with .NET framework 4.5. Check if the necessary references are correctly loaded before compiling the projects.

    The plugin samples have the post-build events defined in the Visual Studio project that deploys the binary to {Navisworks Install Path}\Plugins.

  • Lab1: Overview
    This is actually a copy of SDK sample "AppInfo", a useful tool for developers as it displays a lot of information regarding the document and the application as well as the relative relationships of classes. The button is available at [Tool add-ins *] tab.


  • Lab2: Plugins
    A plugin that provides:


  • Lab3: Document
    A plugin that provides:


  • Lab4: Model
    A plugin with a dock pane named 'Model DockPane'. It can traverse the model tree, display them in the tree control with custom prefix or postfix string. It also shows how to override the geometry attributes: color, transparency, transformation.


  • Lab5: Properties
    A plugin with a button on [Tool add-ins *] tab named 'Manipulate Properties': dump the properties of an selected items, find the specific property of this item


  • Lab6: Search
    A plugin with a button on [Tool add-ins *] tab named 'Search API'. It is demoed with the specific model MEP.nwc and a companion file price.xml in test file folder. This xml file is a dummy list of price for the corresponding element within this model. The sample can list all model item with its price, or search the items in a price range.


  • Lab7: Selection
    A plugin with a dock pane named 'Selection Dock Pane'. It can traverse the selection sets and display them in the tree control. It also shows how to add a new selection set with explicit selected items or search


  • Lab8: COM Interop
    A plugin that provides:


  • Lab9: Events
    Two demos:


  • Lab10: Viewpoint
    A plugin with a button on [Tool add-ins *] tab: it demos how to get saved view list, how to add saved view. how to move/rotate camera.


  • Lab11: .NET Control
    Four demos of standalone exe:



  • Written by: Xiaodong Liang and Aaron Lu
    Developer Technical Services
    Date: August, 2015