在Autodesk Forge中实现Revit to Excel Exporter

时间:2018-10-24 20:03:50

标签: autodesk-forge

我正在尝试实施讨论here的Revit to Excel导出器。该按钮正在工作,并将urn和令牌传递给

ForgeXLS.downloadXLSX(urn, token, callback /*Optional*/);

我收到一个错误”“获取”(403(禁止)) enter image description here

我正在扩展here中发现的Extensions Skeleton教程。

范围是否可能有问题...如果可以,那么您是否可以指导我如何调整我要提取的访问令牌的范围?

ForgeXLSX.downloadXLSX的代码为:

downloadXLSX: function (urn, token, status) {
    var fileName = decodeURIComponent(atob(urn).replace(/^.*[\\\/]/, '')) + '.xlsx';
    if (fileName.indexOf('.rvt') == -1) {
      if (status) status(true, 'Not a Revit file, aborting.');
      return;
    }

    if (status) {
      status(false, 'Preparing ' + fileName);
      status(false, 'Reading project information....');
    }

    this.prepareTables(urn, token, function (tables) {
      if (status) status(false, 'Building XLSX file...');

      var wb = new Workbook();
      jQuery.each(tables, function (name, table) {
        if (name.indexOf('<')==-1) { // skip tables starting with <
          var ws = ForgeXLS.sheetFromTable(table);
          wb.SheetNames.push(name);
          wb.Sheets[name] = ws;
        }
      });

      var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: true, type: 'binary'});
      saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), fileName);

      if (status) status(true, 'Downloading...');
    })
  },

2 个答案:

答案 0 :(得分:0)

经过一番摸索(和朋友的一些帮助)后,才发现这毕竟是作用域。如果需要访问权限,则可以在config.js文件的公共范围内添加“ data:read”范围,这样导出程序就可以使用了。

 scopes: {
        // Required scopes for the server-side application
        internal: ['bucket:create', 'bucket:read', 'data:read', 'data:create', 'data:write'],
        // Required scope for the client-side viewer
        public: ['viewables:read', 'data:read']
    }

答案 1 :(得分:0)

从范围上讲,您将同时需要 data:read bucket:read 来拥有对模型元数据的充分访问权限:

enter image description here

范围不足的令牌以403结尾: enter image description here

确保您的服务器在请求正文中正确设置了范围,以获取访问令牌。

在调用Forge端点的过程中观察URN和Token变量的最佳选择是here at ForgeXLS.forgeGetRequestenter image description here