26 Oct 2017

Viewer Release Notes: v3.2.1

Default blog image


A) Model Browser UX

  • Visibility is now explicitly called out with the eye icon, to the right of each element.
  • Left-click a listed name to select an object
    New behavior: automatically focus the view on that object
  • Right-click a selected object name to bring up context menu:
    • Isolate, Hide selected, Show all objects, Focus, Clear selection
  • (Right-click with no selection for smaller context menu: Show all objects)



B) Measure Angle Tool

Measurement of angles will now require 3 points instead of choosing 2 lines.

Here's how it looks:




C) Make Viewer version visible at the very top of viewer3D.min.js





D) Camera Transition Event



// Hook the event
viewer.addEventListener(Autodesk.Viewing.CAMERA_TRANSITION_COMPLETED, function(){
  console.log('camera is no longer moving');
// Trigger an action that will move the camera and fire the event

The event will fire at the end of these operations:Transition Types

  • Go Home transition
  • Focus / Fit to View transition (example above)
  • Restore State transition
  • Named Views transition
  • Any other camera transitions

E) New tool method: getPriority()

Tools that are registered into the ToolController will now be able to specify their own priority. The priority is used by the ToolController to sort the tools in it. By default all tools have a priority value of 0.

// Default implementation
this.getPriority = function() {
   return 0;

The higher the numeric value returned the higher priority on the tool stack. Tools with a higher priority have the opportunity to handle events first.


// Tool with high priority
function MyAwesomeTool() {
    this.names = ['my-awesome-tool'];
    this.getPriority = function() {
       return 1000; // Default is 0, higher numerical value results in higher priority.
// Tool with default priority
function MyRegularTool() {
    this.names = ['my-regular-tool'];
// Register them to the Viewer instance (no matter the order)
viewer.toolController.registerTool(new MyAwesomeTool());
viewer.toolController.registerTool(new MyRegularTool());
// Activate tools
viewer.toolController.activateTool('my-awesome-tool'); // MyAwesomeTool gets all events because it is being activated
viewer.toolController.activateTool('my-regular-tool'); // MyAwesomeTool STILL gets all events first because it has the highest priority.


  • The Freehand Markup is now smoother and more performant.
  • Fixed issue where SVG icon on toolbar buttons didn't work on IE11
  • Fixed issue with the New First Person tool which locked the camera when the initial view was pointing directly down or up
  • Fixed issues with touch gestures on IE11 running on Windows Surface devices.
  • Improved memory handling on iOS for models that referenced multiple textures 

Related Article