Cross reference Long list Short list компоненты для grasshopper 0.9005 и выше автор: Дэвид Рутен (David Rutten) перевел Филипп Кац branchpoint.ru
Кросс-позиция (Cross-reference) В 0.9 версии Grasshopper исчезла возможность переключения режима ссылки по короткому списку (short list), длинному списку (long list) или кросс-позиции (cross-reference) для каждого компонента. Эта возможность была перемещена в соответствующие отдельные компоненты, повышая гибкость настроек. Сейчас вы можете достичь кросс-позиции с помощью компонента Cross reference, подсоединив его к соответствующим компонентам для получения нужных комбинаций. Компонент находится в разделе Sets, свитке List.
При работе с несколькими списками, Grasshopper обычно сопоставляет каждому элементу первого списка элемент второго соответственно. Таким образом второй элемент первого списка будет сопоставлен с вторым элементом второго списка и так далее. Однако в ряде случаев требуется сопоставить все элементы второго списка каждому элементу первого. В таких случаях на помощь приходит Cross Reference. Здесь мы видим два списка на входе - {A,B,C} и {X,Y,Z}. В обычных условиях сопоставление даст комбинации {A,X}, {B,Y} и {C,Z}. Однако существуют 6 других возможных комбинаций: {A,Y}, {A,Z}, {B,X}, {B,Z}, {C,X} и {C,Y}. Как мы видим, компонент [Cross Reference] позволяет получить их все.
Мы можем представить поведение компонента с помощью таблицы. Здесь ряды соответствуют первому списку, а колонки – второму. Все возможные комбинации соответствуют заполнению всех ячеек таблицы. Этому соответствует включенный по умолчанию «холистический» (holistic) режим работы компонента. В некоторых случаях нам не нужны действительно все комбинации. В ряде случаев необходимо убрать из набора некоторые позиции, дающие бессмысленный или неправильный результат. Наиболее часто убрать необходимо диагональные ячейки (как раз соответствующие очередности элементов в списках). Ниже представлена таблица для «Диагонального» (diagonal) режима, с вырезанными комбинациями {0,0}, {1,1}, {2,2} и {3,3}.
Вот что получиться для диагонального режима с нашими первоначальными списками:
«Диагональный» режим соответствует простому правилу: «Пропускай все комбинации, где элемента имеют одинаковый индекс».
Режим «Соответствия» (Coincident) в случае с двумя списками работает совершенно так же. Поэтому я предпочел не иллюстрировать его в этой статье; мы ведь показываем все режимы на примере с двумя списками. Однако правило в этом режиме отличается и звучит так: «Пропускай все комбинации с равными индексами любых двух элементов в комбинации». Четвертый режим – еще одна комбинация той же темы. «Нижний треугольник» (Lower triangle) работает по правило «Пропускать все комбинации, где индекс элемента меньше чем индекс следующего элемента в комбинации». Результатом будет отсутствие значений в треугольники до диагонали, однако сама диагональ будет включена в подборку.
Режим «Нижний треугольник (строгий)» (Lower triangle (strict)) делает еще шаг вперед и убирает диагональные значения: «Верхний треугольник» (Upper Triangle) и «Верхний треугольник (строгий)» (Upper Triangle (strict)) работают аналогично двум предыдущим, но выбивают значения на другой стороне относительно диагонали:
Два новых компонента помимо рассмотренного выше Cross Reference тоже имеют разные режимы действия.