Связь кнопки на Windows Forms и файла cs, который загружает семейство

Автор Тема: Связь кнопки на Windows Forms и файла cs, который загружает семейство  (Прочитано 5280 раз)

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

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

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Есть Форма1 и открывающаяся через неё Форма2. Есть кнопка на Форме2 , по нажатию на которую хотелось бы реализовать выполнение загрузки семейства в проект...и возможность создания типоразмера по выпадающему списку из ComboBox на той же Форме2. Буду признательна за любую помощь в реализации.

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
За Вас написать?
Я не увидел вопроса? Не увидел описания проблемы?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Соглашусь с Александром, проблема описана не очень.

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

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

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

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

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

Ну и конечно, не забываем про то, что изменения в модель вносятся в рамках транзакций, иначе выбросит исключение

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

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
у меня проблема, у меня не определяется класс Util, что мне нужно подключить, чтобы оно всё заработало?! ::)

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
у меня проблема, у меня не определяется класс Util, что мне нужно подключить, чтобы оно всё заработало?! ::)
Для большинства случаев нужно подключить только две ссылки - RevitAPI.dll и RevitAPIUI.dll. Вот только нет в API класса Util

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

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1


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

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Огромное спасибо вам!!!!!!!!!!!!!!!!!!

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
у меня проблема, у меня не определяется класс Util, что мне нужно подключить, чтобы оно всё заработало?! ::)
Если не секрет, то зачем этот класс Вам нужен?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Огромное спасибо вам!!!!!!!!!!!!!!!!!!
В ссылке, на статью, которую Вы дали, есть полный проект http://thebuildingcoder.typepad.com/files/familyapi09.zip в котором содержится и Utils.cs с классом Utils. Я не уверен, что этот Utils.cs и Utils.cs, на который дал ссылку Александр Пекшев aka Modis - это одинаковые классы. Нужно проверять.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
ООооо спасибо и вам, наверное я была невнимательна и не увидела...сейчас буду пробовать!!!

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Нужно проверять
Я проверил. Да они разные. Нужно брать класс именно из примера в статье

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

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Итак вернёмся....всё мучаю тот же вопрос....попробую описать поподробнее...Мне нужно,чтобы нажав на кнопочку в windows forms срабатывал класс представленный в отдельном файлике *.cs

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Мне нужно,чтобы нажав на кнопочку в windows forms срабатывал класс представленный в отдельном файлике *.cs
Класс не может срабатывать. Может срабатывать только метод в классе. При этом класс и метод могут быть статическими и тогда они просто вызываются, а могут быть и не статическими и тогда нужно создавать экземпляр класса
попробую описать поподробнее...
Плохо попробовали - ничего не описали
всё мучаю тот же вопрос....
Это даже к Ревиту не относится. Найдите в интернете любой пример в котором есть WinForm и пару классов, скачайте и посмотрите как это все делается

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

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
По нажатию на кнопочку в WF должен сработать весь код, который заложен в наш cs файлик, содержащий код вставки семейства в проект...если делать по стандартному ничего не получится.Вопрос в той категории, которой он соответствует.