我可以使用服务器端API(不是Forge Viewer)创建BIM 360 Pushpin问题吗?

时间:2019-09-09 10:10:16

标签: javascript autodesk-forge autodesk-bim360

https://forge.autodesk.com/en/docs/bim360/v1/tutorials/pushpins/create-pushpin/文档样本中,它显示了如何创建与文档相关的(图钉)问题,但是它利用Autodesk Forge Viewer来获取文档中的选定图纸(attributes.sheet_metadata.sheetGuid),工作表上的位置(attributes.pushpin_attributes.location)和视图状态(attributes.pushpin_attributes.viewer_state),以便传递到实际的服务器端POST / issues / v1 / containers / {container-id} / quality-发出API调用。

我只需要调用服务器端API,因为我需要自动输入数百个问题,而无需显示添加到BIM 360的每个问题的查看器。 有没有什么方法可以从BIM 360文档中获取工作表GUID,而无需使用Viewer Frontend API,也可以将其插入到调用中,还有一种编程方式来生成issue.position和issue.viewerState对象以传递给调用?

我已经审查了问题Can I create document (pushpin) issues via api?,它指向相同的方向,但是没有提供有关如何使用服务器端API来实现此问题的详细信息。

var issue = PushPinExtensionHandle.getItemById('0');

var data = {

    sheet_metadata: { // `viewerApp.selectedItem` references the current sheet
      is3D: viewerApp.selectedItem.is3D(),
      sheetGuid: viewerApp.selectedItem.guid(),
      sheetName: viewerApp.selectedItem.name()
    },
    pushpin_attributes: { // Data about the pushpin
      type: 'TwoDVectorPushpin', // This is the only type currently available
      object_id: issue.objectId, // (Only for 3D models) The object the pushpin is situated on.
      location: issue.position, // The x, y, z coordinates of the pushpin.
      viewer_state: issue.viewerState // The current viewer state. For example, angle, camera, zoom.
    },
  }
};

我正在使用NodeJS,但是任何其他语言的代码示例都将受到欢迎。

1 个答案:

答案 0 :(得分:0)

我通过在创建BIM360问题时对查看器发出的HTTP请求进行反向工程来实现此目的。这是我的代码,它使用Node.js从服务器端创建问题:https://github.com/petrbroz/poc-hololens-bim360/blob/develop/helpers/forge/bim360.js#L73-L131