如何从翻译中排除二维表
How to exclude 2d sheets from translation
我们正在使用 Model Derivative API 转换 Revit 模型以便在 Viewer3d 中查看。我们有带有二维表的模型,如果有的话,会在查看器的左侧打开一个面板。
是否可以参数化翻译请求以跳过这些工作表?或者作为替代解决方案,是否可以让观众忽略除 3d 之外的所有内容?
我们正在为当前请求使用这样的 json:
{
"input": {"urn": "someurn"},
"output": {
"destination": {"region": "us"},
"formats": [{"type": "svf","views":["3d"]}]
}
}
我们使用的是 2.10 版的查看器 API。
出现 2D 视图是因为您正在使用 A360 查看应用程序 - 我知道这是官方指出的,但我们将对其进行更新 - 下面是直接使用查看器 API 的香草代码,它将仅显示您以编程方式 select 的可见路径:
/////////////////////////////////////////////////////////////////
// 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 ()
})
您可以查看 that demo 以获取完整代码,还有一个使用查看应用程序的示例,类似于 API 文档。
现在,为什么当你只请求 3d 时你仍然得到 2d 视图是我需要与开发团队核实的另一个问题...请注意,导出的视图可以通过 select 从 revit 手动编辑 an addin
我们正在使用 Model Derivative API 转换 Revit 模型以便在 Viewer3d 中查看。我们有带有二维表的模型,如果有的话,会在查看器的左侧打开一个面板。 是否可以参数化翻译请求以跳过这些工作表?或者作为替代解决方案,是否可以让观众忽略除 3d 之外的所有内容?
我们正在为当前请求使用这样的 json:
{
"input": {"urn": "someurn"},
"output": {
"destination": {"region": "us"},
"formats": [{"type": "svf","views":["3d"]}]
}
}
我们使用的是 2.10 版的查看器 API。
出现 2D 视图是因为您正在使用 A360 查看应用程序 - 我知道这是官方指出的,但我们将对其进行更新 - 下面是直接使用查看器 API 的香草代码,它将仅显示您以编程方式 select 的可见路径:
/////////////////////////////////////////////////////////////////
// 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 ()
})
您可以查看 that demo 以获取完整代码,还有一个使用查看应用程序的示例,类似于 API 文档。
现在,为什么当你只请求 3d 时你仍然得到 2d 视图是我需要与开发团队核实的另一个问题...请注意,导出的视图可以通过 select 从 revit 手动编辑 an addin