Вкладка List
Ноды по работе со списками. Списки - это коллекции объектов (чисел, строк, элементов Revit, других списков), имеющие простую или сложную структуру.
Last updated
Ноды по работе со списками. Списки - это коллекции объектов (чисел, строк, элементов Revit, других списков), имеющие простую или сложную структуру.
Last updated
Вкладка Generate предназначена для генерации новых списков. Здесь можно создать новый пустой список, объединить существующие списки в один новый, а также сгенерировать числовую последовательность.
Нод по созданию уникальных комбинаций элементов. В качестве исходных данных узел принимает список элементов и числовое значение, обозначающее длину подсписка каждой отдельной комбинации. Далее, для каждого элемента списка создается комбинация со всеми другими элементами. Если при этом в слот replace
подать значение true
, то комбинации будут создаваться не только со всеми остальными элементами, но и с исходным тоже.
Разный порядок элементов в одной комбинации не делает ее уникальной. Если брать пример выше, то мы не увидим две комбинации вида ["A","B"]
и ["B","A"]
, на выходе данный нод выдаст лишь одну из них.Чтобы уникальность порядка элементов в комбинации тоже учитывалась, следует использовать другой нод -List.Permutations
.
Список элементов для создания комбинаций из них
Для каждого фасада нужно подобрать по 3 разных цвета. К какому именно элементу применен цвет - не важно. Но нужно понять, сколько можно сделать уникальных сочетаний цветов из предложенного списка.
На вкладке Modify расположены ноды, которые берут исходный список и модифицируют его тем или иным образом. Например, выкидывают из списка каждый второй элемент, убирают элементы из списка по какому-либо правилу, модифицируют его структуру (делают более плоским или наоборот).
Один из самых распространенных нодов по фильтрации списков. Он по очереди перебирает все элементы списка и каждый из них помещает либо в слот in
, либо в слот out
. Решение о том, в какой из двух слотов отправить элемент узел принимает на основе списка из значений типа bool
, в котором для каждого элемента есть ответ "да или нет" (т.е. отправить ли элемент в in
или в out
).
По сути, то, что происходит в этом ноде, более корректно было бы назвать группировкой на "хороших" и "плохих". Ведь из исходного списка элементов на выходе ничего не исчезает, как мы привыкли это видеть при классической фильтрации. Просто он разбивается на две группы.
Количество элементов в исходном списке и списке масок должно быть одинаковым и иметь одинаковую структуру! Только в этом случае у программы будет "ответ" для каждого элемента и она сможет корректно отфильтровать список.
В этот слот подается список, который мы хотим отфильтровать.
В Dynamo для Revit нет базовых нодов, которые позволили бы нам сразу получить список всех экземпляров стен конкретного типоразмера. Чтобы выполнить данную задачу, воспользуемся фильтрацией:
Получим полный список всех экземпляров стен в проекте
Сравним значение имени их типоразмера с эталонным ("PR-150"), получим список значений типа bool
(булевскую маску)
Отфильтруем исходный список экземпляров стен, используя полученную маску
Мы получили список всех экземпляров стен типоразмера "PR-150"
Тип и структура данных
Направление
Значение по умолчанию
var[]..[]
In
Тип и структура данных
Направление
Значение по умолчанию
int
In
Тип и структура данных
Направление
Значение по умолчанию
bool
In
false
Тип и структура данных
Направление
Значение по умолчанию
var[]..[]
Out
Тип и структура данных
Направление
Значение по умолчанию
var[]..[]
In
Тип и структура данных
Направление
Значение по умолчанию
bool[]..[]
In
Тип и структура данных
Направление
Значение по умолчанию
var[]..[]
Out
Тип и структура данных
Направление
Значение по умолчанию
var[]..[]
Out
№
Описание
1.
Получение всех экземпляров стен одного типоразмера
2.
Удаление из списка элемента с минимальным (максимальным) значением