0

我们正在使用 Model Derivative API 来转换 Revit 模型以便在 Viewer3d 中查看。我们有具有 2d 图纸的模型,如果我们有这些模型,则会在查看器的左侧打开一个面板。是否可以将翻译请求参数化以跳过这些表格?或者作为替代解决方案,是否可以让观众忽略除 3d 之外的所有内容?

我们目前正在为请求使用这样的 json:

{
  "input": {"urn": "someurn"},
  "output": {
    "destination": {"region": "us"},
    "formats": [{"type": "svf","views":["3d"]}]
  }
}

我们使用的是 Viewer API 2.10 版。

4

1 回答 1

0

出现 2D 视图是因为您使用的是 A360 查看应用程序 - 我知道这是官方指出的,但我们将对其进行更新 - 下面是直接使用查看器 API 的原始代码,它只会显示您选择的可视路径以编程方式:

/////////////////////////////////////////////////////////////////
// Initialization Options
//
/////////////////////////////////////////////////////////////////
var initOptions = {
  documentId: urn,
  env: 'AutodeskProduction',
  getAccessToken: function( onGetAccessToken) {
    return token;
  }
}
/////////////////////////////////////////////////////////////////
// Document Loaded Handler
//
/////////////////////////////////////////////////////////////////
function onDocumentLoaded (doc) {
  var rootItem = doc.getRootItem()
  // Grab all 3D items
  var geometryItems3d =
    Autodesk.Viewing.Document.getSubItemsWithProperties(
      rootItem, { 'type': 'geometry', 'role': '3d' }, true)
  // Grab all 2D items
  var geometryItems2d =
      Autodesk.Viewing.Document.getSubItemsWithProperties(
      rootItem, { 'type': 'geometry', 'role': '2d' }, true)
  // Pick the first 3D item otherwise first 2D item
  var selectedItem = (geometryItems3d.length ?
          geometryItems3d[0] :
          geometryItems2d[0])
  var domContainer = document.getElementById('viewer')
  // UI-less Version: viewer without controls and commands
  //viewer = new Autodesk.Viewing.Viewer3D(domContainer)
  // GUI Version: viewer with controls
  var viewer = new Autodesk.Viewing.Private.GuiViewer3D(domContainer)
  viewer.initialize()
  viewer.loadModel(doc.getViewablePath(selectedItem))
}
/////////////////////////////////////////////////////////////////
// Environment Initialized Handler
//
/////////////////////////////////////////////////////////////////
function onEnvInitialized () {
  Autodesk.Viewing.Document.load(
    initOptions.documentId,
    function(doc) {
      onDocumentLoaded (doc)
    },
    function (errCode){
      onLoadError (errCode)
    })
}
/////////////////////////////////////////////////////////////////
// Error Handler
//
/////////////////////////////////////////////////////////////////
function onLoadError (errCode) {
  console.log('Error loading document: ' + errCode)
}
/////////////////////////////////////////////////////////////////
// Bootstraping
//
/////////////////////////////////////////////////////////////////
Autodesk.Viewing.Initializer(
  initOptions,
  function() {
    onEnvInitialized ()
  })

您可以查看该演示以获取完整代码,还有一个使用类似于 API 文档的查看应用程序的示例。

现在,为什么您只请求 3d 时仍然获得 2d 视图是我需要与开发团队核实的另一个问题...请注意,可以通过插件从 revit 手动选择导出的视图

于 2016-10-11T14:54:15.227 回答