Обработка окна при импорте dwg

Автор Тема: Обработка окна при импорте dwg  (Прочитано 2893 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ivmaxАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 3
Здравствуйте, подскажите пожалуйста как обработать всплывающее, при открытии файла, окно об импорте dwg.


Отмечено как Решение ivmax 04-10-2019, 17:42:16

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обработка окна при импорте dwg
« Ответ #1 : 14-09-2019, 12:48:17 »
Я не в курсе есть ли в Revit API прямая возможность для этого, но можно воспользоваться Windows Hooks по этому образцу: https://adn-cis.org/zapret-vsplyivaniya-dialogovyix-okon-v-autocad.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Обработка окна при импорте dwg
« Ответ #2 : 14-09-2019, 13:53:38 »
Вообще говоря, прямая возможность есть, но, зачастую, есть нюансы.

Попробуйте подписаться на событие UIControlledApplication.DialogBoxShowing, отладчиком посмотрите DialogId, приходящем в аргументе DialogBoxShowingEventArgs (либо поковыряйте логи, которые пишет Revit, там, скорее всего, увидите нужный). Нюанс заключается в том, что это событие отрабатывает не на все диалоговые окна :-(

Если событие отлавливается, тогда можно вызывать метод OverrideResult по своим алгоритмам, если DialogId совпадает с указанным.

Если же нет, придётся использовать WinAPI, как подсказал Александр

Оффлайн ivmaxАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 3
Re: Обработка окна при импорте dwg
« Ответ #3 : 04-10-2019, 17:42:13 »
в моем случаем событие не отрабатывало,
но если файл уже открыт то можно пользоваться  UIControlledApplication.DialogBoxShowing, событие срабатывает