#autodesk-forge #autodesk-viewer
#autodesk-forge #autodesk-viewer
Вопрос:
Я попытался запустить браузер моделей со всеми узлами, свернутыми при загрузке нескольких агрегированных моделей, но он не свернул все узлы. Есть ли какой-нибудь способ сделать это?
Попробуйте приведенный ниже код для этих моделей: https://wallabyway.github.io/federatedmodels-v7 /
var ext = NOP_VIEWER.getExtension('Autodesk.ModelStructure')
ext._modelstructure.options.startCollapsed = true
Ответ №1:
Попробуйте использовать эту вместо этого. ModelStructralPanel будет считывать параметры только в своем конструкторе.
var viewer = new Autodesk.Viewing.GuiViewer3D(container, {startCollapsed: true});
var ext = viewer.getExtension('Autodesk.ModelStructure');
// or
// viewer.unloadExtension('Autodesk.ModelStructure');
// var ext = await viewer.loadExtension('Autodesk.ModelStructure', {startCollapsed: true});
Обходной путь:
Добавьте этот фрагмент кода перед открытием панели modelstructure.
var ext = viewer.getExtension('Autodesk.ModelStructure');
ext._modelstructure.addVisibilityListener( show => {
if( show amp;amp; (!ext._modelstructure.uiCreated) ) {
ext._modelstructure.tree.delegates.forEach( d => ext._modelstructure.tree.setAllCollapsed( d, true ) )
}
});
Комментарии:
1. Предлагаемое решение выдает ошибку «обратный вызов не является функцией». Я также попытался выгрузить расширение и загрузить его снова, установив значение startCollapsed равным true, но это не сработало. Есть какие-либо предложения?
2. Мои извинения, есть опечатка, пожалуйста, проверьте мой обновленный ответ
3. Это, конечно, выглядит правильно, но я все еще не получаю свернутый браузер. Ни при его установке в GuidViewer3D, ни при загрузке расширения.
4. Похоже, что с этой опцией есть проблема. Я проверяю нашу команду инженеров и верну A.S.A.P. Между тем, вы можете использовать этот обходной путь:
ext._modelstructure.tree.delegates.forEach( d => ext._modelstructure.tree.setAllCollapsed( d, true ) )
Ответ №2:
При создании средства просмотра передайте ему следующую опцию:
var viewer = new Autodesk.Viewing.GuiViewer3D(container, {modelBrowserStartCollapsed: true});
Он должен каскадироваться до достижения браузера моделей.
Фон
Параметр «modelBrowserStartCollapsed» передается из конструктора Viewer3D вплоть до ModelStructureExtension, где он меняет имя на «startCollapsed» при передаче в ViewerModelStructurePanel.
proto.restoreDefaultPanel = function () {
var config = this.viewer.config;
var options = {
docStructureConfig: config.docStructureConfig,
hideSearch: (0, _src_compat__WEBPACK_IMPORTED_MODULE_2__.isMobileDevice)(),
excludeRoot: config.modelBrowserExcludeRoot,
startCollapsed: config.modelBrowserStartCollapsed // HERE
};
var modelTitle = config.defaultModelStructureTitle || 'Browser';
var panelInstance = new _src_gui_ViewerModelStructurePanel__WEBPACK_IMPORTED_MODULE_1__.ViewerModelStructurePanel(_objectSpread(_objectSpread({},
options),
(0, _src_gui_ViewerModelStructurePanel__WEBPACK_IMPORTED_MODULE_1__.generateDefaultViewerHandlerOptions)(this.viewer)),
modelTitle);
this.setModelStructurePanel(panelInstance);
};
Источник для ViewerModelStructurePanel показывает, что он принимает опцию «startCollapsed», как указано, среди других опций.
function ViewerModelStructurePanel(viewer, userTitle, ops) {
...
options.startCollapsed = options.startCollapsed !== undefined ? options.startCollapsed : false;