Python. Суммирование части подсписка по условию.

Главная Форумы Задать вопрос Python. Суммирование части подсписка по условию.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Автор
    Сообщения
  • #8566 Score: 0
    n1k01a
    Участник

    Здравствуйте.
    В скрипте получены значения параметров в зависимости от имени типа.
    Подскажите, пожалуйста, как просуммировать эти значения параметров, так что бы суммы были внутри соответствующих подсписков?
    Возможно непонятно объяснил, потому прикладываю рисунок с желаемым результатом (выделено красным + показано стрелочками).
    Спасибо.

    Скрипт:

    import clr
    clr.AddReference(‘ProtoGeometry’)
    from Autodesk.DesignScript.Geometry import *
    from Autodesk.DesignScript.Geometry import *
    clr.AddReference(“RevitAPI”)
    import Autodesk
    from Autodesk.Revit.DB import *
    clr.AddReference(“RevitServices”)
    import RevitServices
    from RevitServices.Persistence import DocumentManager

    doc = DocumentManager.Instance.CurrentDBDocument

    Elems = UnwrapElement(IN[0])
    listElems = []

    for i in Elems:
    sublistElems = []
    for k in i:
    if “12 A500” in doc.GetElement((k).GetTypeId()).get_Parameter(BuiltInParameter.SYMBOL_NAME_PARAM).AsString():
    sublistElems.append((k).LookupParameter(“Объем арматуры”).AsDouble())
    if “8 A240” in doc.GetElement((k).GetTypeId()).get_Parameter(BuiltInParameter.SYMBOL_NAME_PARAM).AsString():
    sublistElems.append((k).LookupParameter(“Объем арматуры”).AsDouble())
    if “Подготовка” in doc.GetElement((k).GetTypeId()).get_Parameter(BuiltInParameter.SYMBOL_NAME_PARAM).AsString():
    sublistElems.append((k).LookupParameter(“Объем”).AsDouble())
    if “Монолитная” in doc.GetElement((k).GetTypeId()).get_Parameter(BuiltInParameter.SYMBOL_NAME_PARAM).AsString():
    sublistElems.append((k).LookupParameter(“Объем”).AsDouble())

    listElems.append(sublistElems)

    OUT = listElems

    #8567 Score: 0
    n1k01a
    Участник

    Получилось)

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Для ответа в этой теме необходимо авторизоваться.