Наименование системных семейств

Автор Тема: Наименование системных семейств  (Прочитано 1626 раз)

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

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 8567
  • Карма: 1045
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Pabloa

  • ADN OPEN
  • ***
  • Сообщений: 109
  • Карма: 4
Re: Наименование системных семейств
« Ответ #1 : 31-05-2018, 14:20:04 »
    Всем добрый день. Делаю программу для импорта/экспорта параметров семейств(системных и пользовательских) в Excel. И у меня возник вопрос. Список пользовательских семейств хранится в Family, а откуда получить список системных семейств и категорий этих семейств(трубы, стены и т.д.), которые есть диспетчере проекта в разделе "Семейства" (и не только в диспетчере)?
    Вручную заводить коллекцию, переписав все классы из RevitLookup (Wall, Pipe) очень не хочется, придется постоянно мониторить, а не появилось ли в новой версии Revit новое системное семейство.
    Может есть какой-нибудь другой способ?
 

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 692
  • Карма: 105
  • Skype: chekalin-v
Re: Наименование системных семейств
« Ответ #2 : 31-05-2018, 15:23:52 »
Pabloa,
С помощью FilteredElementCollector выбираете все типоразмеры. А у типоразмера есть параметр - BuiltInParamter.ALL_MODEL_FAMILY_NAME. Там хранится название семества, не важно, системное или нет. Плюс к тому же оно еще и локализованное.
Если нужны именно системные семейства, то дополнительно сделать условие, что тип объекта не равен FamilySymbol
Ну а дальше уже либо выбрать только названия семейств, либо сделать группировку по названию семйеств и получить список семейств с типоразмерами.

Оффлайн Pabloa

  • ADN OPEN
  • ***
  • Сообщений: 109
  • Карма: 4
Re: Наименование системных семейств
« Ответ #3 : 04-06-2018, 14:37:43 »
   Спасибо! Я думал, что раз нельзя все Element получить, то и ElementType нельзя, а тут как все просто оказывается)
   Я вот только никак не могу понять, зачем использовать:
Код - C# [Выбрать]
  1. ElementType.get_Parameter(BuiltInParamter.ALL_MODEL_FAMILY_NAME).AsString()
  2.  
,
если тоже самое можно получить через ElementType.FamilyName.