Общие параметры. "Новый поворот".

Автор Тема: Общие параметры. "Новый поворот".  (Прочитано 2942 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
В одном из крупных приложений к Revit заметил один момент - добавление общего параметра к конкретному семейству, а не ко всей категории, допустим, "Воздухораспределители".
Гуру, вы знаете как это сделать программно? Спасибо...
ПС:  в "Параметрах проекта" Ревита в списке нет данной категории...




VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Общие параметры. "Новый поворот".
« Ответ #1 : 16-05-2020, 22:46:51 »
Гуру, вы знаете как это сделать программно? Спасибо...

Сначала, следует разобраться, как это сделать руками :-) Подскажу, отредактировать семейство, создать параметр, загрузить семейство обратно в проект. Собственно, программно это делается ровно так же.

Дальше твой вопрос разбивается на несколько:
1. Как отредактировать? - методом Document.EditFamily получаем документ семейства
2. Как создать общий параметр семейства? - методом Document.FamilyManager.AddParameter:
Код - C# [Выбрать]
  1. public FamilyParameter AddParameter(
  2.         ExternalDefinition familyDefinition,
  3.         BuiltInParameterGroup parameterGroup,
  4.         bool isInstance
  5. )

Здесь, напомню, работаем с документом именно семейства (из п.1), естественно, не забываем о транзакциях. Определение общего параметра получаем из файла общих параметров. Методом Application.OpenSharedParameterFile получаем DefinitionFile, дальше структура повторяет то, что ты видишь в UI, группы, сами параметры и т.д.
3. Как загрузить семейство в проект обратно? - метод Document.LoadFamily -
Код - C# [Выбрать]
  1. public Family LoadFamily(
  2.         Document targetDocument,
  3.         IFamilyLoadOptions familyLoadOptions
  4. )

Второй параметр - либо сам реализуешь интерфейс, либо можешь воспользоваться UIDocument.GetRevitUIFamilyLoadOptions - стандартный диалог при замене семейства.

Ну и в конце, желательно закрыть документ семейства, открытый в п.1


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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: Общие параметры. "Новый поворот".
« Ответ #2 : 16-05-2020, 22:56:20 »
попробую, спасибо, но в "приложении" это делается довольно "тихо", правда требуется "обновить"...
мне показалось, что это очень удобный прием...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020