Активная электрическая мощность элемента

Автор Тема: Активная электрическая мощность элемента  (Прочитано 3286 раз)

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

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

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

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
Подскажите как получить встроенный параметр активной мощности элемента в категории электрические приборы "OST_ElectricalFixtures". RevitLookup выдает информацию только по электрическим цепям.

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Какой именно параметр? И, случаем, не в ElectricalSystem ли нужно его искать?

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

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
Параметр мощность, но его не видно в элементе. Если заходить в ElectricalSystem - то он начинает работать с цепями, а мне нужны мощности элементов.
Ссылка на файл:
https://drive.google.com/open?id=1UWKU5G2sierboqKs0t4OBWIFeH6EK4i4



Отмечено как Решение sdv79 19-11-2019, 14:30:40

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Всё, понял, спасибо за пример.

Смотрите, сначала из семейства нужно получить нужный коннектор, относящийся к интересуемой системе.

Дальше получаем:
Код - C# [Выбрать]
  1. var mepConnectorInfo = connector.GetMEPConnectorInfo();

Из него вытаскиваем значение параметра ParameterValue:
Код - C# [Выбрать]
  1. var parameterValue = (DoubleParameterValue)mepConnectorInfo.GetConnectorParameterValue(new ElementId(BuiltInParameter.RBS_ELEC_APPARENT_LOAD));

И финальный аккорд:
Код - C# [Выбрать]
  1. var value = UnitUtils.ConvertFromInternalUnits(parameterValue .Value, DisplayUnitType.DUT_WATTS);

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

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
Не определяет метод "GetConnectorParameterValue"
Код - C# [Выбрать]
  1.  
  2.      Reference pickedObj = sel.PickObject(ObjectType.Element, "Выберите элемент");
  3.             ElementId selectedId = pickedObj.ElementId;
  4.             Element element = doc.GetElement(selectedId);
  5.  
  6.             List<double> _value = new List<double>();
  7.             foreach (Connector connector in ((FamilyInstance)element).MEPModel.ConnectorManager.Connectors)
  8.             {
  9.                 var mepConnectorInfo = connector.GetMEPConnectorInfo();
  10.                 var parameterValue = (DoubleParameterValue)mepConnectorInfo.GetConnectorParameterValue(new ElementId(BuiltInParameter.RBS_ELEC_APPARENT_LOAD));
  11.                 var value = UnitUtils.ConvertFromInternalUnits(parameterValue.Value, DisplayUnitType.DUT_WATTS);
  12.                 _value.Add(value);
  13.             }
  14.  
  15.  
  16.  


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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Да, нужно привести к MEPFamilyConnectorInfo, тестил в Iron python.

В коде нужно, всё-таки, фильтровать коннекторы, хотя бы по домену, а ещё лучше смотреть электрическую систему

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

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
Получилось - спасибо.
Рабочий вариант, первый тоже будет работать если сделать приведение))
Код - C# [Выбрать]
  1.        System.Collections.IEnumerator it = faminst.MEPModel.ConnectorManager.Connectors.ForwardIterator();
  2.             while (it.MoveNext())
  3.             {
  4.                 Connector conn = it.Current as Connector;
  5.  
  6.                 MEPFamilyConnectorInfo famConnInfo = conn.GetMEPConnectorInfo() as MEPFamilyConnectorInfo;
  7.  
  8.                 ParameterValue param = famConnInfo.GetConnectorParameterValue(new ElementId(
  9.                     BuiltInParameter.RBS_ELEC_APPARENT_LOAD));            
  10.             }
  11. // для не null param
  12.  var value = UnitUtils.ConvertFromInternalUnits(((DoubleParameterValue)param).Value, DisplayUnitType.DUT_WATTS);
  13.  

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
А потом упадет с NullReferenceException в строке famConnInfo.GetConnectorParameterValue...

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

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
Не должен, если сделать проверку.