Сообщество программистов Autodesk в СНГ
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Образовательный курс по платформе Autodesk Forge.
Начало
Сайт
Правила
Помощь
Поиск
Непрочитанные
Календарь
Вход
Регистрация
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
Revit API
»
Активная электрическая мощность элемента
« предыдущая тема
следующая тема »
Печать
Страницы: [
1
]
Вниз
Автор
Тема: Активная электрическая мощность элемента (Прочитано 5487 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Тема содержит сообщение с Решением.
Нажмите здесь чтобы посмотреть его.
sdv79
ADN OPEN
Сообщений: 64
Карма: 0
Активная электрическая мощность элемента
«
:
18-11-2019, 21:48:51 »
Подскажите как получить встроенный параметр активной мощности элемента в категории электрические приборы "OST_ElectricalFixtures". RevitLookup выдает информацию только по электрическим цепям.
Записан
Александр Игнатович
Administrator
Сообщений: 1152
Карма: 338
Skype:
Re: Активная электрическая мощность элемента
«
Ответ #1 :
19-11-2019, 09:53:12 »
Какой именно параметр? И, случаем, не в ElectricalSystem ли нужно его искать?
Записан
sdv79
ADN OPEN
Сообщений: 64
Карма: 0
Re: Активная электрическая мощность элемента
«
Ответ #2 :
19-11-2019, 10:44:34 »
Параметр мощность, но его не видно в элементе. Если заходить в ElectricalSystem - то он начинает работать с цепями, а мне нужны мощности элементов.
Ссылка на файл:
https://drive.google.com/open?id=1UWKU5G2sierboqKs0t4OBWIFeH6EK4i4
Записан
Отмечено как Решение
sdv79
19-11-2019, 14:30:40
Александр Игнатович
Administrator
Сообщений: 1152
Карма: 338
Skype:
Re: Активная электрическая мощность элемента
«
Ответ #3 :
19-11-2019, 11:06:52 »
Всё, понял, спасибо за пример.
Смотрите, сначала из семейства нужно получить нужный коннектор, относящийся к интересуемой системе.
Дальше получаем:
Код - C#
[Выбрать]
var mepConnectorInfo
=
connector
.
GetMEPConnectorInfo
(
)
;
Из него вытаскиваем значение параметра ParameterValue:
Код - C#
[Выбрать]
var parameterValue
=
(
DoubleParameterValue
)
mepConnectorInfo
.
GetConnectorParameterValue
(
new
ElementId
(
BuiltInParameter
.
RBS_ELEC_APPARENT_LOAD
)
)
;
И финальный аккорд:
Код - C#
[Выбрать]
var value
=
UnitUtils
.
ConvertFromInternalUnits
(
parameterValue
.
Value
, DisplayUnitType
.
DUT_WATTS
)
;
Записан
sdv79
ADN OPEN
Сообщений: 64
Карма: 0
Re: Активная электрическая мощность элемента
«
Ответ #4 :
19-11-2019, 13:27:00 »
Не определяет метод "GetConnectorParameterValue"
Код - C#
[Выбрать]
Reference pickedObj
=
sel
.
PickObject
(
ObjectType
.
Element
,
"Выберите элемент"
)
;
ElementId selectedId
=
pickedObj
.
ElementId
;
Element element
=
doc
.
GetElement
(
selectedId
)
;
List
<
double
>
_value
=
new
List
<
double
>
(
)
;
foreach
(
Connector connector
in
(
(
FamilyInstance
)
element
)
.
MEPModel
.
ConnectorManager
.
Connectors
)
{
var mepConnectorInfo
=
connector
.
GetMEPConnectorInfo
(
)
;
var parameterValue
=
(
DoubleParameterValue
)
mepConnectorInfo
.
GetConnectorParameterValue
(
new
ElementId
(
BuiltInParameter
.
RBS_ELEC_APPARENT_LOAD
)
)
;
var value
=
UnitUtils
.
ConvertFromInternalUnits
(
parameterValue
.
Value
, DisplayUnitType
.
DUT_WATTS
)
;
_value
.
Add
(
value
)
;
}
Записан
Александр Игнатович
Administrator
Сообщений: 1152
Карма: 338
Skype:
Re: Активная электрическая мощность элемента
«
Ответ #5 :
19-11-2019, 13:53:07 »
Да, нужно привести к MEPFamilyConnectorInfo, тестил в Iron python.
В коде нужно, всё-таки, фильтровать коннекторы, хотя бы по домену, а ещё лучше смотреть электрическую систему
Записан
sdv79
ADN OPEN
Сообщений: 64
Карма: 0
Re: Активная электрическая мощность элемента
«
Ответ #6 :
19-11-2019, 13:56:20 »
Получилось - спасибо.
Рабочий вариант, первый тоже будет работать если сделать приведение))
Код - C#
[Выбрать]
System.
Collections
.
IEnumerator
it
=
faminst
.
MEPModel
.
ConnectorManager
.
Connectors
.
ForwardIterator
(
)
;
while
(
it
.
MoveNext
(
)
)
{
Connector conn
=
it
.
Current
as
Connector
;
MEPFamilyConnectorInfo famConnInfo
=
conn
.
GetMEPConnectorInfo
(
)
as
MEPFamilyConnectorInfo
;
ParameterValue param
=
famConnInfo
.
GetConnectorParameterValue
(
new
ElementId
(
BuiltInParameter
.
RBS_ELEC_APPARENT_LOAD
)
)
;
}
// для не null param
var value
=
UnitUtils
.
ConvertFromInternalUnits
(
(
(
DoubleParameterValue
)
param
)
.
Value
, DisplayUnitType
.
DUT_WATTS
)
;
Записан
Александр Игнатович
Administrator
Сообщений: 1152
Карма: 338
Skype:
Re: Активная электрическая мощность элемента
«
Ответ #7 :
19-11-2019, 14:06:07 »
А потом упадет с NullReferenceException в строке famConnInfo.GetConnectorParameterValue...
Записан
sdv79
ADN OPEN
Сообщений: 64
Карма: 0
Re: Активная электрическая мощность элемента
«
Ответ #8 :
19-11-2019, 14:13:19 »
Не должен, если сделать проверку.
Записан
Печать
Страницы: [
1
]
Вверх
« предыдущая тема
следующая тема »
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
Revit API
»
Активная электрическая мощность элемента