Результаты поиска для 'list'

Главная Форумы Поиск Результаты поиска для 'list'

Просмотр 15 результатов — с 196 по 210 (из 325)
  • Автор
    Результаты поиска
  • #5938
    ИваСерж
    Хранитель
    134 pts

    http://dynamobim.org/forums/topic/list-sorting/

    Вообще бы я в питоне сортанул бы чем возился бы с нодами.

    Khasan Mamaev
    Модератор
    187 pts

    воспользоваться нодом List.FilterByBoolMask

    #5881
    Ренат Я.
    Модератор
    79 pts

    ИваСерж спасибо за наводку, вот что получилось

    import clr
    clr.AddReference("RevitAPI")
    from Autodesk.Revit.DB import *
    clr.AddReference("RevitServices")
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager
    clr.AddReference("RevitNodes")
    doc = DocumentManager.Instance.CurrentDBDocument
    x=IN[0]
    TransactionManager.Instance.EnsureInTransaction(doc)
    if isinstance(x, list) == True:
    	family= [doc.LoadFamily(i) for i in x]
    else:
    	family = doc.LoadFamily(x)
    #doc.LoadFamily(FamilyPath)
    TransactionManager.Instance.TransactionTaskDone()
    OUT=family
    #5868

    В ответ на: Фитинги труб

    txt
    Модератор
    86 pts

    попытка сделать тройник:

     

     

     

    import clr

    clr.AddReference("RevitServices")
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager
    doc = DocumentManager.Instance.CurrentDBDocument

    clr.AddReference("RevitAPI")
    from Autodesk.Revit.DB import *

    clr.AddReference("RevitNodes")
    import Revit
    clr.ImportExtensions(Revit.Elements)
    clr.ImportExtensions(Revit.GeometryConversion)

    if isinstance(IN[0], list):
    pipe1 = UnwrapElement(IN[0])
    else:
    pipe1 = [UnwrapElement(IN[0])]

    if isinstance(IN[1], list):
    pipe2 = UnwrapElement(IN[1])
    else:
    pipe2 = [UnwrapElement(IN[1])]

    if isinstance(IN[2], list):
    pipe3 = UnwrapElement(IN[2])
    else:
    pipe3 = [UnwrapElement(IN[2])]

    fittings = []

    TransactionManager.Instance.EnsureInTransaction(doc)

    fitting = doc.Create.NewTeeFitting(pipe1, pipe2, pipe3)
    fittings.append(fitting.ToDSType(False))

    TransactionManager.Instance.TransactionTaskDone()

    OUT = fittings

    #5792

    В ответ на: PipingSystemType

    Legantmar
    Хранитель
    475 pts

    doc.GetElement лишнее (эта команда получает элемент по его Id)
    напиши OUT = Value (и получишь 1840)  (или OUT = list)

    Ренат Я.
    Модератор
    79 pts

    то что ты написал это для одной переменной, для списка надо цикл делать
    а лучше сделать, так чтобы не важно было что подавать в питон)))

    import clr
    x = IN[0]
    if isinstance(x, list) == True:
    list = [i.ToString() for i in x]
    else:
    list = x.ToString()
    OUT = list

    #5729

    Тема: PipingSystemType

    в форуме Задать вопрос
    txt
    Модератор

    как в питоне получить PipingSystemType для выбранного элемента (Select Model Element) или списка элементов ?

    как например, нодами список всех типов , но нужно для выбранного элемента(ов):

    пробовал как то так:

     

    def U(elem): # короткая функция, чтобы каждый раз не писать UnwrapElement(), вместо этого достаточно U()
    a = UnwrapElement(elem)
    return a
    pipetypes=[]
    if isinstance(IN[0], list): # если на входе лист
    for i in IN[0]:
    pipetypes.append(U(i.Plumbing.PipingSystemType))
    else: # в противном случае (это означает, что на входе 1 элемент)

    pipetypes=(U(IN[0])).Plumbing.PipingSystemType

    OUT = pipetypes

     

     

    #5726
    Ренат Я.
    Модератор
    79 pts

    вместо List.GroupByKey можно использовать нод List.FilterByBoolMask на выходе будет 2 списка, в одном где есть совпадения в другом где нет

    #5623
    txt
    Модератор
    86 pts

    Как решить аналогичную задачу, но для списка  в верхнем код блоке,  то есть чтобы на выходе тоже был список : {2, 1 , 2, 1} ?

     

    #5609
    txt
    Модератор
    86 pts

    действительно…

    кстати , только что  узнал как сплющить лист на один уровень :

    OUT=[x[0] for x in list]

    #5607
    Legantmar
    Хранитель
    475 pts

    точно также, например, OUT = list[0]

    #5603
    txt
    Модератор
    86 pts

    Думаю есть способ проще для случая указанного на картинке выше….

     

    Для моего случая при похожих условиях  (от площади  первой по списку S1 нужно было еще отнять площади нижерасположенных элементов , а S1 записать в последнюю и предпоследнюю строки) получилось изобразить что то эдакое методом тыка так :

    import System
    import math
    inn = IN[0]
    list = []
    list_1 = []

    list_minus=[]

    for i in inn:
    sublist_1=i[0].GetParameterValueByName(“Q_Wall_Lenght”)
    sublist_2=i[0].GetParameterValueByName(“Полная высота”)
    sublist_3=i[0].GetParameterValueByName(“Площадь”)
    list_1.append(sublist_3)

    sublist = []
    for k in i:
    try:
    sublist.append(k.GetParameterValueByName(“Площадь”))
    except:
    sublist.append(System.Double(sublist_3))

    list_minus=([sublist_1*(sublist_2/1000)-sum(sublist[1:-2])])
    list.append(list_minus+sublist[1:])

    OUT = list

    txt
    Модератор
    86 pts

    вот получилось: вместо “Null” записать “ноль” (тогда результат как в ноде GetParamValueByname – что и требовалось):

    ….

    except:
    sublist.append(“ноль”)

     

    Legantmar
    Хранитель
    475 pts

    Попробуй вот так (и почитай про try except)

    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    inn = IN[0]
    list = []
    for i in inn:
    	sublist = []
    	for k in i:
    		try:
    			sublist.append(k.GetParameterValueByName("Номер"))
    		except:
    			sublist.append(Null)
    	list.append(sublist)
    OUT = list
    txt
    Модератор
    86 pts

    Может быть, так как у строковых элементов в принципе не существует параметров ,то и описанную выше задачу невозможно решить….

    тогда если убрать строковые элементы в подлистах , пробую извлечь параметры нестроковых элементов с сохранением структуры подсписков, но не получается:

Просмотр 15 результатов — с 196 по 210 (из 325)