Search code examples
javascriptautodesk-forgeforge

What's difference between "../modelderivative/v2/viewers/viewer3D.min.js" and ".../viewingservice/v1/viewers/viewer3D.min.js"?


While working with "https://forge.autodesk.com/blog/using-autodeskviewingmarkupscore-extension", I failed to implement EditModePolycloud and EditModePolyline.

while implementing polyline and polycloud using "...modelderivative/v2/viewers/viewer3D.min.js", it showed error saying "Uncaught TypeError: Autodesk.Viewing.Extensions.Markups.Core.EditModePolyline is not a constructor"

It worked properly with "viewingservice/v1/viewers/viewer3D.min.js"

why EditModePolyline and EditModePolycloud are not available in "https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js" but in "https://developer.api.autodesk.com/viewingservice/v1/viewers/viewer3D.min.js"

<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js?v=v6.0"></script>

    viewer.loadExtension('Autodesk.Viewing.MarkupsCore').then(function(markupsExt){
          markup = markupsExt;
        });
markup.enterEditMode();
var polyline= new Autodesk.Viewing.Extensions.Markups.Core.EditModePolyline(markup)
markup.changeEditMode(polyline);

Is it possible to use consturtor for polyline and polycloud from viewingservice in derivative service?


Solution

  • Always use "https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js" as this CDN endpoint is officially documented and actively maintained while the other is only kept for legacy reasons.

    Tested with your code and it worked - see live sample here:

    viewer.loadExtension('Autodesk.Viewing.MarkupsCore').then(markup => {
      markup.enterEditMode();
      let polyline = new 
      Autodesk.Viewing.Extensions.Markups.Core.EditModePolyline(markup)
      markup.changeEditMode(polyline)
    })