我使用Autodesk Forge(node.js,javascript(使用它一点),React(全新!))。 我有一个矩形3D对象。在每个角落都是一个具有真实世界坐标(lat,lon,z)的点。
可以使用查看器中的属性面板显示这些坐标。
我想从代码中访问它们,但我无法在任何地方找到它们。
起初,我以为他们会在:
window.NOP_VIEWER.model.getBulkProperties('1',
function(properties){console.log(properties);},
function(error){console.log(error);})
但没有!
这是我在观众中可以看到的图片。由于我可以在属性面板中看到它们,我应该可以访问它们了!
我试着用这个:
{
"data": {
"type": "objects",
"objects": [
{
"objectid": 1,
"name": "Model",
"objects": [
{
"objectid": 2691,
"name": "Sols",
"objects": [
{
"objectid": 2692,
"name": "Sol",
"objects": [
{
"objectid": 2693,
"name": "Dalle en béton - 250 mm",
"objects": [
{
"objectid": 2694,
"name": "Sol [236041]"
}
]
}
]
}
]
},
{
"objectid": 2711,
"name": "Modèles génériques",
"objects": [
{
"objectid": 2712,
"name": "Point_Georeferencement",
"objects": [
{
"objectid": 2713,
"name": "Point_Georeferencement",
"objects": [
{
"objectid": 2714,
"name": "Point_Georeferencement [236831]"
},
{
"objectid": 2715,
"name": "Point_Georeferencement [236836]"
},
{
"objectid": 2716,
"name": "Point_Georeferencement [236843]"
},
{
"objectid": 2717,
"name": "Point_Georeferencement [236846]"
}
]
}
]
}
]
}
]
}
]
}
它返回了一个非常长的字段名称列表(如果认为是这样)。 当我尝试将其放入变量时,它返回'undefined'。所以无论如何我都无法访问内部的内容。
还尝试了getProperties(),但我认为我没有以正确的方式编写它,它也不起作用。
我也尝试过som GET请求来查找对象属性,但我得到的只是:
{{1}}
}
但我无法找到一种方法来访问积分的名称或价值!
有人可以帮忙吗?
答案 0 :(得分:1)
NOP_VIEWER
是一个访问当前Viewer的全局变量。你可以致电:
.getProperties()
:这需要1个dbId,一个简单的尝试方法是:
NOP_VIEWER.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (e) {
e.dbIdArray.forEach(function (dbId) {
NOP_VIEWER.getProperty(dbId, function (props) {
console.log(props)
})
})
});
.model.getBulkProperties()
:这会收到一个元素数组,只返回您指定的属性:
NOP_VIEWER.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (e) {
viewer.model.getBulkProperties(e.dbIdArray, ['RefX', 'RefY'], function (elements) {
elements.forEach(function(element){
console.log(element);
})
})
});
您也可以将其与.search()
(see here)或enumerating leaf nodes结合使用。