Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: VeraParfenava от 05-09-2018, 16:19:19

Название: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 05-09-2018, 16:19:19
Есть Форма1 и открывающаяся через неё Форма2. Есть кнопка на Форме2 , по нажатию на которую хотелось бы реализовать выполнение загрузки семейства в проект...и возможность создания типоразмера по выпадающему списку из ComboBox на той же Форме2. Буду признательна за любую помощь в реализации.
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Пекшев aka Modis от 05-09-2018, 16:28:44
За Вас написать?
Я не увидел вопроса? Не увидел описания проблемы?
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Игнатович от 05-09-2018, 18:11:01
Соглашусь с Александром, проблема описана не очень.

Тем не менее, попытаюсь помочь.

1 вопрос о связи объектов. Тут вариантов много, от банальной передачи в конструктор формы1, а затем и формы 2 объекта, например, Document до использования паттерна проектирования "Медиатор".

Хочу сразу отметить, что это будет работать, если обе ваши формы модальные, т.е. вызываются с помощью метода ShowDialog(), а не Show(), в противном случае, реализация должна быть существенно сложнее, с помощью механизма EventHandler (см. пример Samples\ModelessDialog\ModelessForm_ExternalEvent\CS в SDK).

2 вопрос - загрузка семейства в проект. Для этого нужно использовать один из методов Document.LoadFamily (их несколько, с разными параметрами)

3 вопрос - создание типоразмера (про "по выпадающему списку ..." я не понял, извините). Сначала ищем существующий типоразмер семейства (см. FilteredElementCollector), затем у найденного типоразмера вызываем метод Duplicate.

Ну и конечно, не забываем про то, что изменения в модель вносятся в рамках транзакций, иначе выбросит исключение
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 06-09-2018, 09:57:58
у меня проблема, у меня не определяется класс Util, что мне нужно подключить, чтобы оно всё заработало?! ::)
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Пекшев aka Modis от 06-09-2018, 10:00:05
у меня проблема, у меня не определяется класс Util, что мне нужно подключить, чтобы оно всё заработало?! ::)
Для большинства случаев нужно подключить только две ссылки - RevitAPI.dll и RevitAPIUI.dll. Вот только нет в API класса Util
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 06-09-2018, 11:14:03
В данном примере используется этот класс http://adn-cis.org/rabota-s-semejstvami.-zagruzka-semejstva-i-vstavka-ekzemplyara-semejstva.html
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Пекшев aka Modis от 06-09-2018, 11:17:29
В данном примере используется этот класс http://adn-cis.org/rabota-s-semejstvami.-zagruzka-semejstva-i-vstavka-ekzemplyara-semejstva.html
Это вспомогательный класс, который входит в сборник примеров Джереми Таммика (https://github.com/jeremytammik/the_building_coder_samples/blob/master/BuildingCoder/BuildingCoder/Util.cs), а не в API Ревита
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 06-09-2018, 11:20:10
Огромное спасибо вам!!!!!!!!!!!!!!!!!!
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Ривилис от 06-09-2018, 11:20:48
у меня проблема, у меня не определяется класс Util, что мне нужно подключить, чтобы оно всё заработало?! ::)
Если не секрет, то зачем этот класс Вам нужен?
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Ривилис от 06-09-2018, 11:23:05
Огромное спасибо вам!!!!!!!!!!!!!!!!!!
В ссылке, на статью, которую Вы дали, есть полный проект http://thebuildingcoder.typepad.com/files/familyapi09.zip в котором содержится и Utils.cs с классом Utils. Я не уверен, что этот Utils.cs и Utils.cs, на который дал ссылку Александр Пекшев aka Modis - это одинаковые классы. Нужно проверять.
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 06-09-2018, 11:24:15
ООооо спасибо и вам, наверное я была невнимательна и не увидела...сейчас буду пробовать!!!
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Пекшев aka Modis от 06-09-2018, 11:27:04
Нужно проверять
Я проверил. Да они разные. Нужно брать класс именно из примера в статье
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 11-09-2018, 09:38:12
Итак вернёмся....всё мучаю тот же вопрос....попробую описать поподробнее...Мне нужно,чтобы нажав на кнопочку в windows forms срабатывал класс представленный в отдельном файлике *.cs
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Пекшев aka Modis от 11-09-2018, 10:15:03
Мне нужно,чтобы нажав на кнопочку в windows forms срабатывал класс представленный в отдельном файлике *.cs
Класс не может срабатывать. Может срабатывать только метод в классе. При этом класс и метод могут быть статическими и тогда они просто вызываются, а могут быть и не статическими и тогда нужно создавать экземпляр класса
попробую описать поподробнее...
Плохо попробовали - ничего не описали
всё мучаю тот же вопрос....
Это даже к Ревиту не относится. Найдите в интернете любой пример в котором есть WinForm и пару классов, скачайте и посмотрите как это все делается
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 11-09-2018, 11:09:48
По нажатию на кнопочку в WF должен сработать весь код, который заложен в наш cs файлик, содержащий код вставки семейства в проект...если делать по стандартному ничего не получится.Вопрос в той категории, которой он соответствует.
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Ривилис от 11-09-2018, 11:18:56
По нажатию на кнопочку в WF должен сработать весь код, который заложен в наш cs файлик, содержащий код вставки семейства в проект...если делать по стандартному ничего не получится.Вопрос в той категории, которой он соответствует.
Вы не понимаете, что написали абсолютный бред? Подумайте еще.
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: VeraParfenava от 11-09-2018, 11:50:59
Возможно, я действительно неправильно как-то излагаю свои мысли, у меня такая же задача как у этого парня http://forums.augi.com/showthread.php?98991-Windows-Form-Pass-to-Revit-Command
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Ривилис от 11-09-2018, 11:59:36
Возможно, я действительно неправильно как-то излагаю свои мысли, у меня такая же задача как у этого парня http://forums.augi.com/showthread.php?98991-Windows-Form-Pass-to-Revit-Command
1. Не пойму какая связь между тем, что вы хотите и указанной темой.
2. В указанной теме есть решение - воспользуйтесь им если считаете, что в той теме та же задача.
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Ривилис от 11-09-2018, 12:02:09
VeraParfenava
И вообще о чем мы говорим? Где код который некомпилируется/неработает и который можно обсуждать?
Название: Re: Связь кнопки на Windows Forms и файла cs, который загружает семейство
Отправлено: Александр Пекшев aka Modis от 11-09-2018, 19:45:15
VeraParfenava, просто приложите к ответу свой проект, а мы посмотрим. Слишком расплывчатую информацию вы предоставляете - сложно разобраться что вы хотите и что у вас не получается