Результаты поиска для 'list'
-
Результаты поиска
-
Тема: ICollections
Специально для Александра Попова и тех кто интересовался
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB import ElementTransformUtils, ElementIdclr.AddReference("System")
from System.Collections.Generic import Listclr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManagerdoc = 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В большинстве случаев ноды Динамо автоматически обрабатывают, поступающие на вход, массивы данных, могут даже делать это вдоль, поперек и вверх, но есть ноды, которые отказываются по умолчанию обрабатывать массивы, в таких случаях можно написать цикл в DesignScript или Python, но можно воспользоваться штатными нодами(я пока знаю два – List.Combine, List.Map, если знаете другие, то напишите), List.Map – нод применяющий заданную функцию к каждому элементу массива, List.Combine – нод применяющий заданную функцию к элементам сразу нескольких массивов. И вот в качестве функций для этих двух нодов выступают тоже ноды, но в “нестандартном” включении, то есть в ноды не поступает входная информация, но извлекаются свойства нода. Попробуем в обычном динамовском ключе создать несколько перекрытий в Ревит:
Видим что программа выдает ошибку, воспользуемся нодом List.Map и нодом в “нестандартном” включении:
Как видим все сработало.
Тема: List.Combine