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

Статьи => Опубликованные статьи => Тема начата: Александр Ривилис от 10-03-2014, 23:30:04

Название: Наименование системных семейств
Отправлено: Александр Ривилис от 10-03-2014, 23:30:04
Наименование системных семейств
Название: Re: Наименование системных семейств
Отправлено: Павел Тер-Микаэлян от 31-05-2018, 14:20:04
    Всем добрый день. Делаю программу для импорта/экспорта параметров семейств(системных и пользовательских) в Excel. И у меня возник вопрос. Список пользовательских семейств хранится в Family, а откуда получить список системных семейств и категорий этих семейств(трубы, стены и т.д.), которые есть диспетчере проекта в разделе "Семейства" (и не только в диспетчере)?
    Вручную заводить коллекцию, переписав все классы из RevitLookup (Wall, Pipe) очень не хочется, придется постоянно мониторить, а не появилось ли в новой версии Revit новое системное семейство.
    Может есть какой-нибудь другой способ?
 
Название: Re: Наименование системных семейств
Отправлено: Виктор Чекалин от 31-05-2018, 15:23:52
Pabloa,
С помощью FilteredElementCollector выбираете все типоразмеры. А у типоразмера есть параметр - BuiltInParamter.ALL_MODEL_FAMILY_NAME. Там хранится название семества, не важно, системное или нет. Плюс к тому же оно еще и локализованное.
Если нужны именно системные семейства, то дополнительно сделать условие, что тип объекта не равен FamilySymbol
Ну а дальше уже либо выбрать только названия семейств, либо сделать группировку по названию семйеств и получить список семейств с типоразмерами.
Название: Re: Наименование системных семейств
Отправлено: Павел Тер-Микаэлян от 04-06-2018, 14:37:43
   Спасибо! Я думал, что раз нельзя все Element получить, то и ElementType нельзя, а тут как все просто оказывается)
   Я вот только никак не могу понять, зачем использовать:
Код - C# [Выбрать]
  1. ElementType.get_Parameter(BuiltInParamter.ALL_MODEL_FAMILY_NAME).AsString()
  2.  
,
если тоже самое можно получить через ElementType.FamilyName.