ADN Club > Navisworks API

Автоматизация Navisworks

(1/2) > >>

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

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии