Ivan Aguilar
Ivan Aguilar

Reputation: 616

Error loading object in viewer

I'm creating a viewer application in Angular following the basic application tutorial on the forge site (https://ase.autodesk.com/adp/v1/analytics/upload).

Everything is ok, until I call the loadDocument() function. It throws the following error:

XML Parsing Error: no root element found Location: https://ase.autodesk.com/adp/v1/analytics/upload Line Number 1, Column 1:

Anyone has any idea of what's going on? I've tried with different objects and I've made sure the translation to svf format was completed.

Thanks for the help!

-- EDIT: Here's the code for the app (<urn> and <token> were replaced with the correct values):

import { Component, ViewChild, AfterViewInit, OnDestroy, ElementRef, OnInit } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
import 'rxjs/Rx';

declare var Autodesk: any;

@Component({
    selector: 'app-autodesk-forge-viewer',
    templateUrl: './panel.autodesk.viewer.component.html'
})
export class PanelAutodeskViewerComponent
    implements  AfterViewInit,
                OnInit
{
    private viewer: any;
    options = {
        env: 'AutodeskProduction',
        language: "en",
        accessToken: "<token>"
    }

    constructor(route: ActivatedRoute) {  }

    ngOnInit() {

    }    

    ngAfterViewInit() {
        Autodesk.Viewing.Initializer(this.options, function onInitialized() {
            this.viewer = new Autodesk.Viewing.ViewingApplication('ForgeViewer');
            this.viewer.registerViewer(this.viewer.k3D, Autodesk.Viewing.Private.GuiViewer3D);
            this.viewer.loadDocument('urn:<urn>', this.onDocumentLoadSuccess, this.onDocumentLoadFailure);
        });
    }

    private onDocumentLoadSuccess(doc) {
        // We could still make use of Document.getSubItemsWithProperties()
        // However, when using a ViewingApplication, we have access to the **bubble** attribute,
        // which references the root node of a graph that wraps each object from the Manifest JSON.
        var viewables = this.viewer.bubble.search({ 'type': 'geometry' });
        if (viewables.length === 0) {
            console.error('Document contains no viewables.');
            return;
        }

        // Choose any of the avialble viewables
        this.viewer.selectItem(viewables[0].data, this.onItemLoadSuccess, this.onItemLoadFail);
    }

    private onDocumentLoadFailure(viewerErrorCode) {
        console.error('onDocumentLoadFailure() - errorCode:' + viewerErrorCode);
    }

    private onItemLoadSuccess(viewer, item) {
        console.log('onItemLoadSuccess()!');
        console.log(viewer);
        console.log(item);

        // Congratulations! The viewer is now ready to be used.
        console.log('Viewers are equal: ' + (viewer === this.viewer.getCurrentViewer()));
    }

    private onItemLoadFail(errorCode) {
        console.error('onItemLoadFail() - errorCode:' + errorCode);
    }
}

Upvotes: 1

Views: 424

Answers (1)

Eason Kang
Eason Kang

Reputation: 7070

This error message XML Parsing Error: no root element found Location: https://ase.autodesk.com/adp/v1/analytics/upload Line Number 1, Column 1: shouldn't cause the issue you addressed. Your model should be loaded and shown in the viewer without any problem.

If you can provide a reproducible case demonstrating that, I will gladly investigate what happened to your app. Those following items should be in the reproducible case:

  1. A short exact description of what you are trying to achieve. The behavior you observe versus what you expect, and why this is a problem.
  2. A complete yet minimal sample source model to run a test in.
  3. A complete yet minimal Forge app that can be run and debugged with a simple procedure to analyze its behavior live in the sample model. Detailed step-by-step instructions for reproducing the issue, e.g. which element to pick, what command to launch etc.

If your reproducible case could not be posted here publicly, please send it to the [email protected] and remove sensitive data or information before you send.

Upvotes: 2

Related Questions