View and data api



View and data api

0 1


5-min-view-and-data

quick intro to View and Data API

On Github jaimerosales / 5-min-view-and-data

View and data api

About Me

Jaime Rosales

Developer Evangelist @ Autodesk

@AfroJme

It's easy and powerful

  • Supports over 70 formats(dwg, rvt, obj, stl, etc.)
  • Viewables stored in the cloud
  • No WebGL knowledge needed

The Stack

Server-Side REST API

  • Upload
  • Translation
  • Storage

Client-Side JavaScript API

  • Viewing - THREE.js
  • Embed in Webpage
  • Various JavaScript APIs

Eye candy 3D models in seconds

Let's see something that makes more sense for the AEC industry

LMV Nav demo

On your page

Reference the following JavaScript Libraries:

<link rel="stylesheet" href="https://viewing.api.autodesk.com/viewingservice/v1/viewers/style.css" type="text/css">
<script src="https://viewing.api.autodesk.com/viewingservice/v1/viewers/viewer3D.min.js"></script>

Create a div with id "viewer"

<div id="viewer"></div>

Initialize with JavaScript

function initialize() {
    var options = {
        'document' : 'urn:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6bXlidWNrZXQvc2t5c2NwcjEuM2Rz',
        'env':'AutodeskProduction',
        'getAccessToken': getToken,
        'refreshToken': getToken,
        };
    var viewerElement = document.getElementById('viewer');
    var viewer = new Autodesk.Viewing.Viewer3D(viewerElement, {});

    Autodesk.Viewing.Initializer(options,function() {
        viewer.initialize();
        loadDocument(viewer, options.document);
    });
}

token

function getToken() {
    return "GX6OONHlQ9qoVaCSmBqJvqPFUT5i";
}

You should write your own token service.

loadDocument

function loadDocument(viewer, documentId) {
    // Find the first 3d geometry and load that.
    Autodesk.Viewing.Document.load(documentId, function(doc) {
    var geometryItems = [];
    geometryItems = Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(), {
        'type' : 'geometry',
        'role' : '3d'
    }, true);

    if (geometryItems.length > 0) {
        viewer.load(doc.getViewablePath(geometryItems[0]));
    }
 }, function(errorMsg) {// onErrorCallback
    alert("Load Error: " + errorMsg);
    });
}

The minimal sample code can be found on GitHub https://github.com/Developer-Autodesk/View-and-Data-Barebone

It's less than 60 lines of JavaScript + HTML

Resources

View and data api