"Прозрачная" форма в Ревит

Автор Тема: "Прозрачная" форма в Ревит  (Прочитано 3804 раз)

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

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
при запуске формы в ревит через кнопку на ленте нет возможности выбрать элементы в ревит (или выполнить любое другое действие), пока эта форма не будет закрыта. есть ли способ выбирать элементы и совершать все остальные действия в ревит, при запущенной форме ?

Отмечено как Решение enot 03-03-2019, 21:49:20

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: "Прозрачная" форма в Ревит
« Ответ #1 : 03-03-2019, 11:40:30 »
Конечно есть - запустить окно в немодальной форме, используя Show() вместо ShowDialog()

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: "Прозрачная" форма в Ревит
« Ответ #2 : 03-03-2019, 11:42:11 »
как при этом тогда обработать событие :

DailogResult res = form.ShowDialog()
if (res==DialogResult.Ok)
{
...

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: "Прозрачная" форма в Ревит
« Ответ #3 : 03-03-2019, 18:44:17 »
Конечно есть - запустить окно в немодальной форме, используя Show() вместо ShowDialog()

Не забыть только, что тогда работать с Revit API через External events. См пример ModelessDialog\ModelessForm_ExternalEvent\CS в SDK.

как при этом тогда обработать событие :

Придерусь: это не событие. По сути вопроса - обрабатывать некое событие формы - нажатие какой-то кнопки (видимо, "ОК"), так же запуская external event для последующей обработки

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: "Прозрачная" форма в Ревит
« Ответ #4 : 03-03-2019, 18:47:29 »
Не забыть только, что тогда работать с Revit API через External events. См пример ModelessDialog\ModelessForm_ExternalEvent\CS в SDK.
Для выбора элементов External Event не нужен

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: "Прозрачная" форма в Ревит
« Ответ #5 : 03-03-2019, 20:47:29 »
Согласен. Перемудрил, в голове про PickObject мелькало, да, скорее всего, достаточно обрабатывать Selection.

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: "Прозрачная" форма в Ревит
« Ответ #6 : 03-03-2019, 21:48:59 »
Конечно есть - запустить окно в немодальной форме, используя Show() вместо ShowDialog()
Спасибо , это помогло.
Вместо:

Цитировать
DailogResult res = form.ShowDialog()
if (res==DialogResult.Ok)

Использовал событие закрытия формы.

Не забыть только, что тогда работать с Revit API через External events. См пример ModelessDialog\ModelessForm_ExternalEvent\CS в SDK.
Спасибо, буду иметь ввиду что такая вещь существует  :D
Судя по всему, для дальнейшей обработки выбранных вручную элементов Ревит, при активной форме,  как раз и нужен будет  External events...

Оффлайн sdv79

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
Re: "Прозрачная" форма в Ревит
« Ответ #7 : 07-12-2019, 20:02:10 »
Как обнулить данные после закрытия окна
Код - C# [Выбрать]
  1. ExternalEvent externalEvent = ExternalEvent.Create(new ExternalEventHandler());
  2. ...
  3.  
  4. externalEvent.Dispose(); // не помогает
  5.