ADN Club > Navisworks API
Автоматизация Navisworks
wingsdraw:
Доброго времени! С какой целью выполняется проверка .IsAutomated?
--- Код - C# [Выбрать] ---if(!Autodesk.Navisworks.Api.Application.IsAutomated) {PluginRecord pluginRecord = Autodesk.Navisworks.Api.Application.Plugins.FindPlugin("DockPanel.DP12"); if (pluginRecord is DockPanePluginRecord && pluginRecord.IsEnabled) {DockPanePlugin docPanel = (DockPanePlugin)(pluginRecord.LoadedPlugin ?? pluginRecord.LoadPlugin()); docPanel.ActivatePane(); } }
Такую проверку нет необходимости выполнять в этом случае (создание кнопки на панели инструментов):
--- Код - C# [Выбрать] ---public override int Execute(params string[] parameters) { MessageBox.Show("Box", "Title"); return 0; }
Где можно узнать подробнее про суть этого режима автоматизации?
Александр Ривилис:
Вот что говорит документация:
Т.е. если это свойство true - не следует создавать диалоги, так как они прервут процесс автоматизации.
wingsdraw:
Спасибо за ответ! Вы смотрите "NET API.chm"? Документация по API c 2018 года совсем не менялась?
По этой строчке,
--- Код - C# [Выбрать] ---if (pluginRecord is DockPanePluginRecord && pluginRecord.IsEnabled)
как такое может быть, что
--- Код - C# [Выбрать] ---pluginRecord is DockPanePluginRecord
ведь ссылаясь на https://www.bestprog.net/ru/2019/03/09/run-time-type-information-statements-is-as-examples-ru/
--- Код - C# [Выбрать] --- class BaseClass{ public int d;} // производный класс от базового классаclass DerivedClass:BaseClass{ public int dd;} BaseClass bc = new BaseClass();DerivedClass dc = new DerivedClass();if (bc is DerivedClass) Console.WriteLine("Объект bc есть совместим с DerivedClass");
"значение условия в операторе if равное false, так как объект базового класса не может быть совместим с производным классом. Однако, наоборот, объект производного класса есть совместим с базовым, так как, производный класс расширяет возможности базового класса."
Александр Ривилис:
--- Цитата: wingsdraw от 25-11-2021, 19:21:29 ---Вы смотрите "NET API.chm"?
--- Конец цитаты ---
Да.
--- Цитата: wingsdraw от 25-11-2021, 19:21:29 ---Документация по API c 2018 года совсем не менялась?
--- Конец цитаты ---
Нет.
--- Цитата: wingsdraw от 25-11-2021, 19:21:29 ---как такое может быть, что
--- Конец цитаты ---
Что здесь не так, если Autodesk.Navisworks.Api.Application.IsAutomated == false, т.е. интерфейс есть и соответственно можно работать с панелями?
wingsdraw:
--- Цитировать ---Что здесь не так, если Autodesk.Navisworks.Api.Application.IsAutomated == false, т.е. интерфейс есть
--- Конец цитаты ---
* В каком случае интерфейса может не быть?
* На сайте указанном выше говорится, что "объект базового класса не может быть совместим с производным классом" тогда почему такое возможно?
--- Код - C# [Выбрать] ---pluginRecord is DockPanePluginRecord
Навигация
Перейти к полной версии