ActiveX controls allow Navisworks style navigation of files embedded within hosts such as web pages of end user applications. The aim is to allow users to embed Navisworks capabilities inside Web Pages, applications and other containers. The user can also access and manipulate the controls internal state. The controls can open files using absolute, URL or relative paths.
1. ActiveX control types before 2012 There are three types of ActiveX controls:
(1) Built-in: lcodieD.dll - Also called Dynamic control
- Installed as part of main product install of Navisworks Manage/Simulate/Review(*)
e.g.,\lcodieD.dll - Supports textures.
- Can open various non Navisworks CAD files.
- All API is fully enabled when main product is licensed.
- This module is found in the main product install and is NOT redistributable. The customer is required to have the product installed.
*Note: Navisworks Review applies 2010 and earlier releases
(2) Full: lcodieDX.dll - Supports textures.
- Supplied as .msm (active_dx.msm).
- Supplied as self installing .exe file for web/other usage (NavisworksFullActiveXSetup.exe).
- The API is not fully enabled, only very limited access is possible.
- This module (*.msm) is found under \api\COM\bin folder (64-bit version in \api\COM\bin\x64), and is allowed to redistribute with the developer's application.
(3) Lite: lcodieS.dll - No textures support.
- Only Navisworks files can be opened. - Supplied as .msm (active_sx.msm).
- Supplied as .cab file for web usage (\api\COM\bin\nw_ax_lite.cab).
- The API is not fully enabled, only very limited access is possible.
- This may be installed as part of 'Navigator'. This module (*.msm) is found under \api\COM\bin folder (64-bit version in \api\COM\bin\x64), and is allowed to redistribute with the developer's application.
2. ActiveX control types from Navisworks 2012
ActiveX controls have been re-organized as follows:
(1) Navisworks Integrated API Library
It is also known as ‘Dynamic control’ before 2012. It relies on main product installation, so no 32bit support on 64bit OS. It has two sub-type controls:
- "Navisworks Integrated Control 9 SDI" : single instance use only
- "Navisworks Integrated Control 9 MDI" : multiple instance support, no plugins or textures
(2) Navisworks Redistributable API Library
Also known as the ‘Full Control’ before 2012, this control, by default, is installed with product. And the standalone installer (Navisworks ActiveX Redistributable Setup.exe) is also provided in \api\COM\bin. Similarly, it has two sub-type controls:
- "Navisworks Redistributable Control 9 SDI" : single instance use only
- "Navisworks Redistributable Control 9 MDI" : multiple instance support, no plugins or textures
SDI means the application can only use one control. MDI means the application can use multi controls.
3. Install
By default, Built-in and Integrated control are installed when you install Navisworks. To install Full or Redistributable control, you need to run the setup exe above.
In general, to work with Lite control, the web page will provide the nw_ax_lite.cab file. When the web page is visited in the first time, the cab file will be deployed and the Lite control will be redistributed.
For Lite, Full or Redistributable, you can also merge the modules file (*.msm) . Thus the controls will be redistributed when your application is being installed.
4. 32bits and 64bits
The built-in or integrated control has 32bits and 64bits. 32bits can only be installed in 32bits OS. 64bits can only be installed on 64bits OS. lite, full, or redistributable control has 32bits or 64bits, too. 64bits can only be installed on 64bits OS. 32bits can be installed in 32bits or 64bits.
4. Documentations and SDK Samples
\api\COM contains the documentations and samples.
- COM Interface.pdf : chapter 4 introduces ActiveX controls
- NavisWorksCOM.chm: help reference including ActiveX controls
Before 2013:
- ACTX_01: control in HTML
- ACTX_02 ~ 06: control in VB6 application
- ACTX_07: control in C++ application
Since 2013:
api\COM\examples\ActiveX: samples with control in C#
5. API Not Fully Enabled
By default what the Lite, Full or Redistributable controls can do is open a model, change navigation mode and select pre-defined viewpoints. Most APIs abilities are not enabled.
When you try to access the un-enabled methods/objects, you will receive a failure:
"Navisworks Error - API Unlicensed"
For example, the following methods will not be available:
- Find: InwOpFind, InwOpFindSpec, InwOpFindCondition, and InwOpSelection objects
- Selection and viewing: ZoomInCurViewOnSel, set_SelectionHidden, HiddenItemsResetAll
- Coloring objects: OverrideColor, OverrideResetAll
6. Tips for working with control
(1) Each type control has its own GUID. The GUID will change in different releases. The GUID of the same type control is same on 32 & 64bits.
e.g. both Navisworks Integrated Control 9 SDI of 32 & 64bits are
2B72955E-067A-4260-AEF5-44746A775C53.
(2) The GUID can be found in the registry if they have been installed. e.g. searching with ‘Integrated Control’, you can get
(3) If you want to find out which control you are using, try "Ctrl + Alt + Shift + E". It will pop up a dialog with the information about the control you are using.
(4) If you are using Visual Studio and create a Windows form application, something you need to be aware:
- on 32bits, all the controls can be added from the Tool Box >> Choose Items >> COM tab, if they have been installed.
- on 64bits, only 32bits control can be found because the VS designer is still 32bits. It cannot load 64bits control. The suggestion is to create your application on 32bits and copy to 64bits OS. The application will load 64bits on runtime.