Установка семейства по умолчанию

Автор Тема: Установка семейства по умолчанию  (Прочитано 2305 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 3
Здравствуйте,
пытаюсь задать семейство по умолчанию для категории Элементы узлов, которые вставляются кнопкой Компонент на вкладке Аннотации, с ленты

пишу так и это не работает, если делаю то же самое для категории Двери - все работает,  в чем может быть дело?
Код - 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.  

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Установка семейства по умолчанию
« Ответ #1 : 20-08-2021, 11:29:53 »
Ага, не работает оно, причем GetDefaultFamilyTypeId возвращает присвоенный.

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

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 3
Re: Установка семейства по умолчанию
« Ответ #2 : 20-08-2021, 11:31:26 »
есть какие-нибудь варианты решения ? :)

Отмечено как Решение ivmax 20-08-2021, 11:46:05

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Установка семейства по умолчанию
« Ответ #3 : 20-08-2021, 11:38:47 »
Во-первых, подумать, действительно ли нужно задавать дефолтный тип, может, можно обойтись PromptForFamilyInstancePlacement в своей команде. Если прям никак, попробовать переопределить биндинги команды PostableCommand.DetailComponent, использовать всё тот же PromptForFamilyInstancePlacement только с нужным типоразмером

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

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 3
Re: Установка семейства по умолчанию
« Ответ #4 : 20-08-2021, 11:46:03 »
Во-первых, подумать, действительно ли нужно задавать дефолтный тип, может, можно обойтись PromptForFamilyInstancePlacement в своей команде. Если прям никак, попробовать переопределить биндинги команды PostableCommand.DetailComponent, использовать всё тот же PromptForFamilyInstancePlacement только с нужным типоразмером

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