Autodesk forge 查看器GUI外部div中的ModelStructurePanel实例
我正在从查看器开始构建一个带有模型查询功能的html页面。 我已经实现了一些方法,包括viewer.getProperties()和viewer.getBulkProperties()。在处理这些主题时,我意识到在查看器外部的元素(不在停靠面板中)中创建面板实例(模型结构、属性等)非常有用,可以维护功能,如果可能,还可以自定义它们(例如显示未折叠的元素)。Autodesk forge 查看器GUI外部div中的ModelStructurePanel实例,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我正在从查看器开始构建一个带有模型查询功能的html页面。 我已经实现了一些方法,包括viewer.getProperties()和viewer.getBulkProperties()。在处理这些主题时,我意识到在查看器外部的元素(不在停靠面板中)中创建面板实例(模型结构、属性等)非常有用,可以维护功能,如果可能,还可以自定义它们(例如显示未折叠的元素)。 第一个问题:有可能这样做吗?第二个问题:关于此主题的一般方法或教程的建议?对于Q1,可以这样做,将ModelStructurePanel的容
第一个问题:有可能这样做吗?第二个问题:关于此主题的一般方法或教程的建议?对于Q1,可以这样做,将ModelStructurePanel的容器附加到查看器容器外的div,但不建议这样做。将ModelStructurePanel从查看器容器中移出后,修复它的CSS需要付出额外的努力 对于第2季度,您可以利用来创建一个类似于3的UI,对于像本机ModelStructurePanel那样重建模型层次结构数据,下面是一个代码片段。您必须修改它以匹配jstree的数据需求
function buildModelTree( model ) {
//builds model tree recursively
function _buildModelTreeRec( node ) {
it.enumNodeChildren( node.dbId, function(childId) {
node.children = node.children || [];
var childNode = {
dbId: childId,
name: it.getNodeName( childId )
};
node.children.push( childNode );
_buildModelTreeRec( childNode );
});
}
//get model instance tree and root component
var it = model.getData().instanceTree;
var rootId = it.getRootId();
var rootNode = {
dbId: rootId,
name: it.getNodeName( rootId )
};
_buildModelTreeRec( rootNode );
return rootNode;
}
var root = buildModelTree( viewer.model );
然后,您需要绑定这些事件,以在某些特定情况下更改树UI的外观:
- Autodesk.Viewing.SELECTION\u CHANGED\u EVENT:要使树节点被选中
- Autodesk.Viewing.ISOLATE_事件:
- Autodesk.Viewing.HIDE_事件:若要更改树节点的外观,请将树节点的文本颜色设置为灰色(如果此节点不可见)
- Autodesk.Viewing.SHOW_事件:将选定三个节点的文本颜色从灰色更改为黑色
- Autodesk.Viewing.ISOLATE_事件:隐藏_事件和显示_事件的组合
- 隔离:
- 适合观看: