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

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

Просмотр 15 результатов — с 301 по 315 (из 325)
  • Автор
    Результаты поиска
  • Alexandr Popov
    Модератор
    44 pts

    Высота помещения = Height room

    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    #Введенные в этом узле данные сохраняется в виде списка в переменных IN.
    curveroom = IN[0]
    roomel = IN[1]
    centerwall = IN[2]

    outlist = []
    high = IN[3]
    countroom=roomel.Count
    i=0
    while i<countroom:
    j=0
    dist=[]
    count = curveroom[i][0][0].Count
    while j0:
    if dist[j]<min:
    min=dist[j]
    j=j+1
    k=0
    while k<count:
    if dist[k]==min:
    Swall=(curveroom[i][0][0][k].Length*high[i])/1000000
    outlist.append([roomel[i],Swall])
    k=k+1
    i=i+1
    #Назначьте вывод переменной OUT.
    OUT = outlist

     

    Alexandr Popov
    Модератор
    44 pts

    Hi, kulkul, it works in small model, but nodes “Tools GetSurroundingElements” give me Empty List in big one.

    And I have second problem:

    which is difficult formes of rooms don’t create solids

     

    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    room = IN[0]
    wall = IN[1]
    wind = IN[2]
    door = IN[3]
    maxdist = IN[4]
    countroom = room.Count
    countwall = wall.Count
    countwind = wind.Count
    countdoor = door.Count
    i1=0
    list1=[]
    while i1<countroom:
    i2=0
    roomsol = room[i1].Solids
    while i2<countwall:
    wallsol = wall[i2].Solids
    dist=roomsol[0].DistanceTo(wallsol[0])
    if dist<maxdist:
    list1.append([room[i1],wall[i2]])
    i2=i2+1
    i1=i1+1
    OUT = list1

     

    Could it be other issue?

     

    kulkul
    Участник
    47 pts

    I think its because get parameter value shows only Integer value.

     

    The Reason why its showing to 2 because the name is listed in 2

     

    If you change the slanted type you see the difference. it will show 1

     

     

    PashaStr (Pavel Karpovich)
    Участник
    7 pts

    Нашёл то что искал, нод от clockwork – FamilyInstance.SubComponents. Вот заглядывает только в первый уровень вложенности. Может есть мысли как цикл переделать, чтобы развёртывал каждое семейство, что он нашёл? Ссылка на проект и скрипт – https://drive.google.com/folderview?id=0BwmNjVD4W1-BX25YRUk5SXBla28&usp=sharing (RVT2016) Работает на вот таком пайтон коде:

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

    clr.AddReference(“RevitNodes”)
    import Revit
    clr.ImportExtensions(Revit.Elements)

    clr.AddReference(“RevitServices”)
    import RevitServices
    from RevitServices.Persistence import DocumentManager

    doc = DocumentManager.Instance.CurrentDBDocument
    items = UnwrapElement(IN[0])
    elementlist = list()

    for item in items:
    itemlist = list()
    try:
    for subcomp in item.GetSubComponentIds():
    itemlist.append(doc.GetElement(subcomp).ToDSType(True))
    except:
    donothing = 1
    elementlist.append(itemlist)
    OUT = elementlist

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

    а так пересечение списков  list(set(IN[0]) & set(IN[1]))

    и объединение  list(set(IN[0]) | set(IN[1]))

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

    или в одну строчку list(set(IN[0]) – set(IN[1]))

    #1760

    В ответ на: ICollections

    Dmitry_dronov
    Модератор
    50 pts

    Есть еще один замечательный способ.
    Делаете ваш список стандартными методами питона.
    outlist.append(a)
    outlist.extend(b)
    outlist.pop(c)

    а затем конвертируете его в ай_лист с нужным параметром
    i_outlist = List[ElementId](outlist)

    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    #Import ILIST method
    from System.Collections.Generic import *
    inlist1 = IN[0]
    inlist2 = IN[1]
    outlist = []
    for i in range(len(inlist1)):
    outlist.append(inlist1[i])
    i_outlist = List[int](outlist)
    for i in range(len(inlist2)):
    i_outlist.Add(inlist2[i])
    OUT = outlist,i_outlist
    

    #1729

    В ответ на: ICollections

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

    Ids=List[ElementId]() – так задается пустое множество

    Legantmar
    Хранитель

    для некоторых команд нужен не список, а ICollections
    добавлю на форум, чтобы проще было искать.

    clr.AddReference("System")
    from System.Collections.Generic import List
    Ids=List[ElementId]()

    добавление в ICollection происходит командой Add, а не append

    for i in IN[0]:
    	Ids.Add(UnwrapElement(i).Id)
    Legantmar
    Хранитель

    Специально для Александра Попова и тех кто интересовался

    import clr
    clr.AddReference('RevitAPI')
    from Autodesk.Revit.DB import *
    from Autodesk.Revit.DB import ElementTransformUtils, ElementId

    clr.AddReference("System")
    from System.Collections.Generic import List

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

    clr.AddReference("RevitServices")
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager

    doc = DocumentManager.Instance.CurrentDBDocument

    Ids=List[ElementId]()
    for i in IN[0]:
    Ids.Add(UnwrapElement(i).Id)

    TransactionManager.Instance.EnsureInTransaction(doc)
    doc.Create.NewGroup(Ids)
    TransactionManager.Instance.TransactionTaskDone()
    OUT=Ids

    Скачать скрипт

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

    Дим, ты прав.
    Kulkul, Дмитрий, спасибо
    вот код

    import clr
    clr.AddReference('RevitAPI')
    from Autodesk.Revit.DB import *
    from System.Collections.Generic import *
    
    clr.AddReference("RevitServices")
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager
    
    doc = DocumentManager.Instance.CurrentDBDocument
    elements = UnwrapElement(IN[0])
    view = UnwrapElement(IN[1])
    ids = list()
    elementlist = list()
    for item in elements:
    	ids.append(item.Id)
    ielements = List[ElementId](ids)
    
    TransactionManager.Instance.EnsureInTransaction(doc)
    #view.IsolateElementsTemporary(ielements)
    view.HideElements(ielements)
    TransactionManager.Instance.TransactionTaskDone()
    OUT = (view,elements)

    Скачать скрипт

    p.s. этим и отличается открытое сообщество (коммунити)
    один поставил задачку, другой нашел похожий ответ, третий нашел в API нужную команду, четвертый собрал все

    ПРИМЕЧАНИЕ: скрипт скрывает элемент или группу элементов, совсем, не временно (т.е. это не очки)
    если нужно скрыть временно, то вместо view.HideElements(ielements) нужно написать view.HideElementsTemporary(ielements)

    #1487
    Khasan Mamaev
    Модератор

    В большинстве случаев ноды Динамо автоматически обрабатывают, поступающие на вход, массивы данных, могут даже делать это вдоль, поперек и вверх, но есть ноды, которые отказываются по умолчанию обрабатывать массивы, в таких случаях можно написать цикл в DesignScript или Python, но можно воспользоваться штатными нодами(я пока знаю два – List.Combine, List.Map, если знаете другие, то напишите), List.Map – нод применяющий заданную функцию к каждому элементу массива, List.Combine – нод применяющий заданную функцию к элементам сразу нескольких массивов. И вот в качестве функций для этих двух нодов выступают тоже ноды, но в “нестандартном” включении, то есть в ноды не поступает входная информация, но извлекаются свойства нода. Попробуем в обычном динамовском ключе создать несколько перекрытий в Ревит:

    Видим что программа выдает ошибку, воспользуемся нодом List.Map и нодом в “нестандартном” включении:

    Как видим все сработало.

    #1482

    В ответ на: List.Combine

    kulkul
    Участник
    47 pts

    Hi Eugene,

    You can find your answer here:

    #1481

    Тема: List.Combine

    в форуме Ноды
    Евгений Колчин
    Участник

    Добрый день всем) подскажите, как работает данный нод. как настроить комбинатор?

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

    Среди встроенных функций есть замечательная функция dir(), которая дает возможность исследовать содержимое объектов Python, если запустить ее без аргумента, то можно получить содержимое нашего “чистого листа”:

    рамочкой обведен класс встроенных функций, который тоже можно исследовать функцией dir():

    View post on imgur.com

    а вот весь список встроенных функций:
    {ArithmeticError,AssertionError,AttributeError,BaseException,BufferError,BytesWarning,DeprecationWarning,EOFError,Ellipsis,EnvironmentError,Exception,False,FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,ImportWarning,IndentationError,IndexError,KeyError,KeyboardInterrupt,LookupError,MemoryError,NameError,None,NotImplemented,NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,ReferenceError,RuntimeError,RuntimeWarning,StandardError,StopIteration,SyntaxError,SyntaxWarning,SystemError,SystemExit,TabError,True,TypeError,UnboundLocalError,UnicodeDecodeError,UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,WindowsError,ZeroDivisionError,__debug__,__doc__,__import__,__name__,__package__,abs,all,any,apply,basestring,bin,bool,buffer,bytearray,bytes,callable,chr,classmethod,cmp,coerce,compile,complex,delattr,dict,dir,divmod,enumerate,eval,execfile,exit,file,filter,float,format,frozenset,getattr,globals,hasattr,hash,help,hex,id,input,int,intern,isinstance,issubclass,iter,len,list,locals,long,map,max,memoryview,min,next,object,oct,open,ord,pow,print,property,quit,range,raw_input,reduce,reload,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,sum,super,tuple,type,unichr,unicode,vars,xrange,zip}

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