Параметры тип/экземпляр

Автор Тема: Параметры тип/экземпляр  (Прочитано 10172 раз)

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

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

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Параметры тип/экземпляр
« : 24-12-2018, 08:09:06 »
 есть FamilyInstance
FamilyInstance.Parameters - получаем параметры экземпляра
FamilyInstance=>FamilySymbol.Parameters - параметры типа
Как получить (из какого элемента/типа/метода) сразу все (тип/экземпляр) параметры?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Параметры тип/экземпляр
« Ответ #1 : 24-12-2018, 08:12:03 »
Может утро так влияет, но я вопроса не понял))

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Параметры тип/экземпляр
« Ответ #2 : 24-12-2018, 08:16:35 »
Как из семейства получить все параметры типа и параметры экземпляра ?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Параметры тип/экземпляр
« Ответ #3 : 24-12-2018, 08:18:18 »
Так получить два списка, а потом их соединить в один. Других способов нет

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Параметры тип/экземпляр
« Ответ #4 : 24-12-2018, 08:27:39 »
Понятно. Это и хотел уточнить)
Есть еще способ получить параметры через редактор семейств
FamilyDoc =doc.EditFamily(Family)
Далее что то там вроде
 FamilyManager.Parameters
Какие при этом будут возвращены параметры?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Параметры тип/экземпляр
« Ответ #5 : 24-12-2018, 10:50:09 »
Может утро так влияет, но я вопроса не понял))

+1

Вообще, чуть более общий метод:

1) список - параметры экземпляра elem.Parameters
2) doc.GetElement(elem.GetTypeId())?.Parameters - так будет работать не только для пользовательских семейств, но и для системных, типа стен, перекрытий, ...

Ну и да, объединить эти 2 списка




FamilyDoc =doc.EditFamily(Family)
Далее что то там вроде
 FamilyManager.Parameters


А это уже ни к чему, если не собираетесь менять что-то в самом семействе

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Параметры тип/экземпляр
« Ответ #6 : 24-12-2018, 11:28:16 »
А как быть если есть только Family и нужно получить его параметры экземпляра?

   
Код - C# [Выбрать]
  1.        Family fam ;
  2.             var fam_symbols=  fam.GetFamilySymbolIds();
  3.  
  4.             foreach (var x in fam_symbols)
  5.             {
  6.                 FamilySymbol symbol =doc.GetElement(x) as FamilySymbol;
  7.  
  8.                 var sym_pars= symbol.Parameters; // тут мы получим параметры типа (не экземпляра)
  9.  
  10.             }

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Параметры тип/экземпляр
« Ответ #7 : 24-12-2018, 11:50:12 »
Создать инстанс, либо найти существующий, ну либо через EditFamily -> FamilyManager.Parameters.

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Параметры тип/экземпляр
« Ответ #8 : 24-12-2018, 12:31:58 »
Создать инстанс
- Не, семейство находится во внешней папке.


EditFamily -> FamilyManager.Parameters.
Значит, все-таки, эта штука  возращает параметры типа и экземпляра ?)
 

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Параметры тип/экземпляр
« Ответ #9 : 24-12-2018, 12:34:57 »
Не, семейство находится во внешней папке
Ну и что? Вы загружаете семейство, активируете его, читаете параметры с экземпляра, а потом откатываете транзакцию

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Параметры тип/экземпляр
« Ответ #10 : 24-12-2018, 12:54:48 »
Вы загружаете семейство
После загрузки оно будет в проекте (если нет размещенных экземпляров), но чтобы получить FamilyInstance нужно это семейство где то разместить , правильно?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Параметры тип/экземпляр
« Ответ #11 : 24-12-2018, 14:12:21 »
Вы загружаете семейство
После загрузки оно будет в проекте (если нет размещенных экземпляров), но чтобы получить FamilyInstance нужно это семейство где то разместить , правильно?
Да, все верно

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Параметры тип/экземпляр
« Ответ #12 : 24-12-2018, 14:21:32 »
Зачем усложнять жизнь, если нужно считать семейства из папки?

Получаем документ Application.OpenDocumentFile("<путь к семейству>"), читаем FamilyManager.Parameters, закрываем документ.

И да,
Значит, все-таки, эта штука  возращает параметры типа и экземпляра ?)

у FamilyParameter есть свойство IsInstance

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Параметры тип/экземпляр
« Ответ #13 : 24-12-2018, 16:21:00 »
читаем FamilyManager.Parameters
FamilyManager.Parameters дает FamilyParameter = > мне же нужно получить Parameter (все параметры типа/экземпляра)
 так как к примеру , требуется получить значение параметра (у FamilyParameter  я не нашел метода для этого (формулу получить можно , а значение - нет)):
http://www.revitapidocs.com/2018.1/4a9edc57-7ec7-addf-6bff-41d5feeaf43e.htm

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Параметры тип/экземпляр
« Ответ #14 : 24-12-2018, 16:23:34 »
Зачем?

Parameter есть только уже у семейства, загруженного в проект