How do I download SVG/SVF for offline viewing with Autodesk Model Forge APIs

怎甘沉沦 提交于 2019-12-08 05:57:25

问题


I am able to accomplish all steps to upload Revit files and translate and load in viewer. I am now trying to download the translated SVG/SVF for offline viewing. I found reference to the following endpoint and tested it out with this:

function download(){
var uri = 'https://developer.api.autodesk.com/derivativeservice/v2/derivatives/<<urn>>' ;
var authorizationHeader = 'Bearer <<token>>'

request.get(
    {
        url: uri,    
        headers:
        {
            'Authorization': authorizationHeader,
            'Accept-Encoding': 'gzip, deflate'
        },
    },

    function(error, response, body){ 
        if(!error){
            console.log(body); 
        }else{
            console.log(error);
        }
    });
}

API returns:
{"diagnostic":"Derivative api only supports adsk.viewing & adsk.objects urn"}


回答1:


There are several steps if you desire to grab all the required files for offline viewing. Start by checking the downloadBubble method (node.js) in extract project:

this.downloadBubble =function (urn, outPath) {
    var self =this ;
    self._outPath =outPath ;
    return (new Promise (function (fulfill, reject) {
        self._progress.msg ='Downloading manifest' ;
        self.getManifest (urn)
            .then (function (bubble) {
                //utils.writeFile (outPath + 'bubble.json', bubble) ;
                self._progress.msg ='Listing all derivative files' ;
                self.listAllDerivativeFiles (bubble.body, function (error, result) {
                    self._progress._filesToFetch =result.list.length ;
                    console.log ('Number of files to fetch:', self._progress._filesToFetch) ;
                    self._progress._estimatedSize =0 | (result.totalSize / (1024 * 1024)) ;
                    console.log ('Estimated download size:', self._progress._estimatedSize, 'MB') ;

                    //self.fixFlatBubbles (result) ;
                    //self.fixFusionBubbles (result) ;

                    self._progress.msg ='Downloading derivative files' ;
                    self.downloadAllDerivativeFiles (result.list, self._outPath, function (failed, succeeded) {
                        //if ( ++self._done == 1 /*2*/ )
                        //  return ;
                        self.failed =failed ;
                        self.succeeded =succeeded ;
                        fulfill (self) ;
                    }) ;
                }) ;
            })
            .catch (function (err) {
                console.error ('Error:', err.message) ;
                self._errors.push (err.message) ;
                reject (self) ;
            })
        ;
    })) ;
} ;

Test it live at https://extract.autodesk.io




回答2:


The urn should be url-encoded, not base64 encoded.



来源:https://stackoverflow.com/questions/42009930/how-do-i-download-svg-svf-for-offline-viewing-with-autodesk-model-forge-apis

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!