3.3.2 Set difference
Set difference — нахождение разности двух множеств (набор объектов находящихся в множестве A, но не представленных в множестве B)
1) Set A - Список или дерево данных с объектами различных типов данных;
2) Set B - Другой список или дерево данных с объектами различных типов данных;;
3) Union - Результат операции нахождения разницы между множеством A и множеством B.

Set Difference — специфическая операция, позволяющая найти разницу между двумя множествами.
Обратите внимание на изображении выше, что в списке, поданного во входной разъём List есть повторяющиеся элементы, а конкретно цифры 1 и 4. В Set мы получаем список уникальных значений без повторяющихся цифр. В Map выводится карта индексов элементов List. Map может быть полезен в дальнейшем для обращения к изначальному списку.

В следующем примере в качестве элементов List подаётся текстовый список:
Обратите внимание на повторяющиеся значения элементов List. На первый взгляд невозможно понять какие элементы содержатся в списке. Фрагмент списка содержит текстовые значения Apple, Orange и Kiwi, однако нельзя быть уверенным, есть ли иные элементы. Список может быть очень большим, например длинной в 1000 элементов и более. Так каким же образом понять какие элементы содержатся в нём? В таком случае Create Set позволяет вычислить уникальные значения.
В конечном итоге в списке уникальных значений всего 3.

Так же интересной задачей может быть исключение дублирующихся точек. Обычно для этих целей используется нод Cull Duplicates или нод из плагина Kangaroo 2 Remove duplicate pts. Однако данную задачу можно решить при помощи Create Set. В некоторых случаях, возможно, это будет отличным решением.

Например, есть n-ое количество дублирующихся точек. В окне Rhino невозможно увидеть где точки дублируются, а где нет:
Примеры
Местонахождение Set Difference
При визуализации списка точек при помощи панели можно увидеть, что действительно, в списке есть дублирующиеся точки. Длина списка = 40 точкам, хотя на экране Rhino всего 14 точек.
Для избавления от дубликатов достаточно провести список точек через Create Set:
Задача 1
Уровень задачи: средний
Дано: дублирующиеся линии. На изображении кажется, что всего 4 линии, но их на самом деле намного больше, так как линии наслаиваются друг на друга. В окне Rhino на глаз это нельзя определить.
Необходимо: при помощи Create Set избавиться от дубликатов, чтобы в итоге осталось только 4 линии.
Скачайте файл Grasshopper и решите в нём задачу.
При затруднении смотрите видео ответ:
Задача 2
Уровень задачи: средний +
Автор задачи : Латентный Сантехник
Дано: множество дублирующихся полилиний по аналогии с задачей 1 необходимо избавиться от дублирующихся полилиний используя 3 нода.

Подсказка: одним из нодов должен быть key/value search из подраздела Set.
Скачайте файл Grasshopper и постройте скрипт. Видео-ответ к данной задаче появится в ближайшее время. А пока что поломайте голову над её решением. При затруднении пишите в наш общий телеграм чат.
Оцените этот урок и помогите тем самым сделать его лучше.
Контакты
Время работы
  • Понедельник - пятница
  • с 10 до 19 часов
Подпишитесь на еженедельную рассылку
© 2022 SKY ARCH SCHOOL
ИП Аюпов АМ. Все права защищены