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

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

Просмотр 15 результатов — с 106 по 120 (из 325)
  • Автор
    Результаты поиска
  • Denver-22
    Участник
    6 pts

    Если в Динамо, попробуйте:
    – у координат Z сортируете индексы – SortIndexByValue (нод с одним Входом)
    – в нод List.GetItemAtIndex подаете список элементов, а индексы – от SortIndexByValue

    ИваСерж
    Хранитель
    134 pts

    Могу только на питоне.
    В ИН0 – подаем список панелей
    В ИН1- подаем список координат.

    На выходе отсортированные панели.

    panelsList = IN[0]
    coordZlist = IN[1]

    ziped = zip(panelsList,coordZlist)
    ziped.sort(key=lambda x: x[1])
    outlist = [i[0] for i in ziped]

    OUT = outlist

    Арсений
    Участник

    Добрый день.

    Создаю марки для панелей витражей, хочу чтобы они пронумеровальсь снизу вверх. Сортирую их по оси Z. Естественно, т.к. панели витража через Dynamo выбираются в рандомном порядке, то координаты тоже сортируются не по возрастанию. Через List.Sort сортирую их по возрастанию и тут вопрос – как можно перетасовать исходный список панелей с ID в соответствии с новым списком.

    Кто знает – подскажите, научите.

    Алексей
    Участник

    Есть пример по выдаче заданий от инженеров:
    Обмена заданиями на отверстия
    Семейства заданий на отверстия выполнены без какой либо основы полыми элементами, для того что бы потом “вырезать” в стене данное семейство, нужно проделать довольно муторную операцию с каждым из этих отверстий, как показано на видео.

    Можно ли это автоматизировать процесс «вырезания»?

    Максим
    Участник

    А можете поделиться успехами? а то я, наверное, не до конца понял суть преобразования списка в коллекцию… использую как писали в теме по синтаксису “Для создания таковых и используется List [ElementId].”.. .. получаю такую ошибку “SystemError: MakeGenericType on non-generic type”

    ИваСерж
    Хранитель
    134 pts

    получаем элементы из Динамо? Тогда можно их Анврапнуть и считать Проперти – ИД. Например для “плоского” списка, можно получить через цикл

    elId = list()
    for elem in IN[1]:
    elId.append(UnwrapElement(elem.ID))

    #7767
    anchim678
    Участник

    #Copyright(c) 2015, Konrad Sobon
    # @arch_laboratory, http://archi-lab.net

    import clr
    clr.AddReference(‘ProtoGeometry’)
    from Autodesk.DesignScript.Geometry import *

    # Import DocumentManager and TransactionManager
    clr.AddReference(“RevitServices”)
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager

    # Import RevitAPI
    clr.AddReference(“RevitAPI”)
    import Autodesk
    from Autodesk.Revit.DB import *

    doc = DocumentManager.Instance.CurrentDBDocument
    uiapp = DocumentManager.Instance.CurrentUIApplication
    app = uiapp.Application

    from System.Collections.Generic import *

    # Import ToDSType(bool) extension method
    clr.AddReference(“RevitNodes”)
    import Revit
    clr.ImportExtensions(Revit.Elements)
    import System
    #The inputs to this node will be stored as a list in the IN variable.
    dataEnteringNode = IN

    _paramName = IN[0][0]
    _groupName = IN[0][1]
    _paramType = IN[1]
    _visible = IN[0][3]
    _category = IN[2]
    _paramGroup = IN[3]
    _instance = IN[0][6]

    def ParamBindingExists(_doc, _paramName, _paramType):
    map = doc.ParameterBindings
    iterator = map.ForwardIterator()
    iterator.Reset()
    while iterator.MoveNext():
    if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
    paramExists = True
    break
    else:
    paramExists = False
    return paramExists

    def RemoveParamBinding(_doc, _paramName, _paramType):
    map = doc.ParameterBindings
    iterator = map.ForwardIterator()
    iterator.Reset()
    while iterator.MoveNext():
    if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
    definition = iterator.Key
    break
    message = None
    if definition != None:
    map.Remove(definition)
    message = “Success”
    return message

    def addParam(doc, _paramName, _visible, _instance, _groupName, _paramGroup,k):
    message = None
    if ParamBindingExists(doc, _paramName, _paramType):
    if not RemoveParamBinding(doc, _paramName, _paramType) == “Success”:
    message = “Param Binding Not Removed Successfully”
    else:
    message = None

    group = file.Groups.get_Item(_groupName)
    if group == None:
    group = file.Groups.Create(_groupName)
    if group.Definitions.Contains(group.Definitions.Item[_paramName]):
    _def = group.Definitions.Item[_paramName]
    else:
    _def = group.Definitions.Create(opt)
    param = doc.ParameterBindings.Insert(_def, bind, _paramGroup)
    return message
    #”Start” the transaction
    TransactionManager.Instance.EnsureInTransaction(doc)

    try:
    file = app.OpenSharedParameterFile()
    except:
    message = “No Shared Parameter file found.”
    pass
    k=0
    while k<_paramName.Count:
    builtInCategory = System.Enum.ToObject(BuiltInCategory, _category[k].Id)
    cats = app.Create.NewCategorySet()
    cats.Insert(doc.Settings.Categories.get_Item(builtInCategory))
    if _instance[k]:
    bind = app.Create.NewInstanceBinding(cats)
    else:
    bind = app.Create.NewTypeBinding(cats)
    opt = ExternalDefinitionCreationOptions(_paramName[k], _paramType[k])
    opt.Visible = _visible[k]
    if isinstance(_paramName[k], list):
    for i in _paramName[k]:
    message = addParam(doc, i, _visible[k], _instance[k], _groupName[k], _paramGroup[k], k)
    else:
    message = addParam(doc, _paramName[k], _visible[k], _instance[k], _groupName[k], _paramGroup[k],k)
    k=k+1

    # “End” the transaction
    TransactionManager.Instance.TransactionTaskDone()

    #Assign your output to the OUT variable

    if message == None:
    OUT = “Success”
    else:
    OUT = message

    #7709
    Иван
    Участник
    4 pts

    Вы в фильтр List.FilterByBoolMask подает не типоразмеры, а сами экземпляры окон. Подайте в аргумент list уникальные типоразмеры с нода List.UniqueItems и все будет хорошо.

    Выдает ошибку он потому, что не находит в параметрах экземпляра окон параметр “Маркировка типоразмера”.

    #7705
    Denver-22
    Участник
    6 pts

    В нод FilterByBool на вход list должны подключать All Elements (фильтруем элементы). У вас – GetParameter.

    anchim678
    Участник
    list = IN[0]
    res = []
    
    for i in range(len(list)):
        if list[i] in list[i + 1:] or list[i] in res:
            res.append(list[i])
    
    # Назначьте вывод переменной OUT.
    OUT = res
    
    Этот вариант хорошо сработал , спасибо всем.
    Иван
    Участник
    4 pts

    Добрый день.

    Через ноды динамо это, наверняка, можно сделать. Но первым в голову пришло решение на питоне:

    list = IN[0]
    res = []
    
    for i in range(len(list)):
        if list[i] in list[i + 1:] or list[i] in res:
            res.append(list[i])
    
    # Назначьте вывод переменной OUT.
    OUT = res

    Единственное, что сортировка не такая, как в примере.

    JON73
    Участник

    Здравствуйте, как на питоне реализовать сравнение двух списков и если значения совпадают то нужно объединить эти два списка попарно

    пример {1..5};  и  {3..9}; (в нем одинаковые значения 3, 4, 5 )    получить в итоге   значения из первого списка записать в нулевой List:  3 4 5    и  значения из второго списка записать в  первый List:  3 4 5       .

    в дальнейшем мне потребуется разделить списки и уже из первого списка скопировать параметр во второй

    https://drive.google.com/open?id=10Zpopb87BstOj_UCutIBJVvkMqISIAP5

    ссылка на похожую тему https://stackoverflow.com/questions/1388818/how-can-i-compare-two-lists-in-python-and-return-matches

     

    #7614

    В ответ на: DesignScriptGuide цикл while

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

    не обращай внимания на стрелочки это пример для консоли.
    много материала по Python есть в разделе http://dynamobim.ru/python/

    рекомендую начать изучение вот с этого ресурса https://pythonworld.ru

    посмотри уроки Хасана https://www.youtube.com/watch?v=VEO71cVqeOk&list=PLlbS5pIhoVbX1kj3pewQ3ft2KqWrfRbht

    Обязательно посмотри мой шаблон и примечания к нему http://dynamobim.ru/forums/topic/шаблон-python/#post-7606

    начни с простых примеров, не стесняйся задавать вопросы.
    p.s. скачай скрипты из раздела Скачать, посмотри как они устроены.

     

    Ром
    Участник

    Привет товарищи!! Никак не пойму что не так???

     

    вот скрипт:

    def U(elem): # короткая функция, чтобы каждый раз не писать UnwrapElement(), вместо этого достаточно U()
    a = UnwrapElement(elem)
    return a

    points = U(IN[3])
    elemTypeSymbol = U(IN[1])
    wallTypeHost = U(IN[2])
    Struct = StructuralType
    lvl = U(IN[4])

    elementlist=[]

    TransactionManager.Instance.EnsureInTransaction(doc)

    for point in points:
    newobj = doc.Create.NewFamilyInstance(point.ToXyz(),elemTypeSymbol,lvl,StructuralType.NonStructural)
    elementlist.append(newobj.ToDSType(False))
    TransactionManager.Instance.TransactionTaskDone()

    OUT=elementlist

     

    Подскажите пожалуйста….

    #7445

    В ответ на: C# и Sharp Develop

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

    В качестве продолжения изучения выборки и фильтрации :

    как получить ICollections из списка Id элементов АПИ пишет тут:
    http://www.revitapidocs.com/2017.1/31b73d46-7d67-5dbb-4dad-80aa597c9afc.htm

    использование метода FilteredElementCollector Constructor (Document, ICollection(ElementId)) тут:
    http://www.revitapidocs.com/2017.1/901f78a0-1f6c-217b-ea48-8b404324e88b.htm

    Смысл какой: выбрали рамкой кучу элементов, из них отфильтровались трубы

    код шарпа:

    public void give_me_pipes()
    {
    UIDocument uidoc=this.Application.ActiveUIDocument;
    var els_ = (uidoc.Selection.PickElementsByRectangle("Select model elements"));
    var lst_ = new List<ElementId>();
    foreach (Element i in els_)
    {
    var k = this.Document.GetElement(i.Id);
    lst_.Add(k.Id);
    }

    ICollection<ElementId> selectedIds = lst_ ;
    FilteredElementCollector collector = new FilteredElementCollector(this.Document, selectedIds);
    collector.OfCategory(BuiltInCategory.OST_PipeCurves);
    string s = "";
    foreach (Element x in collector)
    {
    s += x.Name + "\r\n";
    }
    TaskDialog.Show("Info", "Pipe Types:\n\n" + s);

    }
    }
    }

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