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

ADN Club => Revit API => Тема начата: ivmax от 20-08-2021, 10:08:19

Название: Установка семейства по умолчанию
Отправлено: ivmax от 20-08-2021, 10:08:19
Здравствуйте,
пытаюсь задать семейство по умолчанию для категории Элементы узлов, которые вставляются кнопкой Компонент на вкладке Аннотации, с ленты

пишу так и это не работает, если делаю то же самое для категории Двери - все работает,  в чем может быть дело?
Код - C# [Выбрать]
  1.             using (var tr = new Transaction(doc, "1"))
  2.             {
  3.                 tr.Start();
  4.                 var cat = new ElementId(BuiltInCategory.OST_DetailComponents);
  5.                 var symbol = doc.GetElement(new ElementId(115047)) as FamilySymbol;
  6.                 if(symbol.IsValidDefaultFamilyType(cat))
  7.                 {
  8.                     doc.SetDefaultFamilyTypeId(cat, symbol.Id);
  9.                 }
  10.                 tr.Commit();
  11.             }
  12.  
Название: Re: Установка семейства по умолчанию
Отправлено: Александр Игнатович от 20-08-2021, 11:29:53
Ага, не работает оно, причем GetDefaultFamilyTypeId возвращает присвоенный.
Название: Re: Установка семейства по умолчанию
Отправлено: ivmax от 20-08-2021, 11:31:26
есть какие-нибудь варианты решения ? :)
Название: Re: Установка семейства по умолчанию
Отправлено: Александр Игнатович от 20-08-2021, 11:38:47
Во-первых, подумать, действительно ли нужно задавать дефолтный тип, может, можно обойтись PromptForFamilyInstancePlacement в своей команде. Если прям никак, попробовать переопределить биндинги команды PostableCommand.DetailComponent, использовать всё тот же PromptForFamilyInstancePlacement только с нужным типоразмером
Название: Re: Установка семейства по умолчанию
Отправлено: ivmax от 20-08-2021, 11:46:03
Во-первых, подумать, действительно ли нужно задавать дефолтный тип, может, можно обойтись PromptForFamilyInstancePlacement в своей команде. Если прям никак, попробовать переопределить биндинги команды PostableCommand.DetailComponent, использовать всё тот же PromptForFamilyInstancePlacement только с нужным типоразмером

спасибо, PromptForFamilyInstancePlacement  - то что нужно, не знал про такой метод