Path mapper Grasshopper

Path mapper w Grasshopperze

90% problemów w Grasshopperz wynika z niewłaściwej manipulacji drzewemi danych. Co tydzień otrzymuję wiele pytań na ten temat tego problemu, a większość z nich można łatwo rozwiązać za pomocą jednego komponentu z manu tree. Wiem, że spośród 26 komponentów nie jest łatwo wybrać ten właściwy, ale dzisiaj pokażę jeden naprawdę potężny, który może nawet zastąpić inne. Mówię o Path Mapperze. Znasz go?

Path mapper jest kozacki

Komponent Path Mapper można znaleźć w menu Set → Tree →  Path Mapper. Komponent ten umożliwia wykonywanie operacji leksykalnych na drzewach danych.

Ledwo zacząłem, a już używam trudnych słów.

OK, więc…

Operacje leksykalne to logiczne odwzorowania między ścieżkami danych i indeksami, które są definiowane przez maski tekstowe. Pamiętasz maski? Pisałem o nich w poprzednim poście. Przeczytaj ten post najpierw i wróć do tego artykułu:

—> Jak używać masek w Grasshopperze <—

W uproszczeniu: Path Mapper pomaga w reorganizacji elementów w drzewach lub zmianie jego struktury .

Jeśli pracujesz na złożonych strukturach danych, musisz dość często je modifikować. W Grasshopperze możesz znaleźć kilka komponentów do tego celu. Między innymi:

Wszystkie z nich mogą być niewystarczające podczas pracy na zaawansowanych strukturach drzewa lub gdy potrzebne jest niestandardowe przegrupowanie. W wielu przypadkach użycie komponentu Path Mapper jest jedynym sposobem na znalezienie rozwiązania. Ten komponent ma również wady, ale o nich opowiem na końcu tego postu.

1. Drzewa danych w Grasshopperze

W porządku.

Zacznijmy od czegoś prostego. Umiejśćmy jeden element w konrektnej gałęzi drzewa

Wybieramy nasz komponent Path mapper i łączymy dane wyjściowe. Komponent zaczyna działać po napisaniu ścieżki źródłowej. Najłatwiejszym sposobem uzyskania tej ścieżki jest po prostu przejście do wbudowanych funkcji i utworzenie mapowania (flatten lub graft). Element zmieni kolor na zielony i zacznie działać. Teraz możemy dowolnie modyfikować naszą docelową ścieżkę np. wpisujemy tylko numer gałęzi {1;5} i element zostanie umieszczony dokładnie we wskazanej ścieżce. W ten sposób możemy dowolnie dodawać nowe gałęzie drzewa.

Grasshopper data tree
Drzewa danych w Grasshopperze - proste operacje

Przejdźmy do bardziej zaawansowanych przykładów.

Do wszystkich operacji będziemy używać naszego drzewa bazowego. To drzewo składa się z 24 punktów umieszczonych w 12 gałęziach po dwa elementy każda.

Data tree structure
Bazowa struktura drzewa

Ścieżka źródłowa jest zawsze stała i jest podawana przez drzewo wejściowe. Możesz ustawić tylko ścieżkę docelową. Klikając prawym przyciskiem myszy na komponencie, możesz znaleźć wbudowane mapowania wewnątrz Path Mapper. Zawsze używam jednego z nich, aby automatycznie znaleźć moją ścieżkę źródłową.

Path mapper Built-in mappings
Path mapper wbudowane funkcje mapowania
Learn Grasshopper

Sign up for free mailing and you will receive Grasshopper TIPS every week. 

 Join NOW – I’ll send the first secrets of Grasshopper right away!

2. Flattening

Aby wykonać operację flatten, zmieniamy naszą gałąź targetów na 0, więc wszystkie elementy zostaną umieszczone tylko w jednej gałęzi. Widać to wyraźnie w komponecie param viever poniżej, gdzie jest tylko jedna gałąź.

Możemy teraz porównać te dwa drzewa.

Nasze drzewo bazowe ma dwie ścieżki w nawiasie klamrowym, które odpowiadają dużej literze B i dużej literze A. W zwykłym nawiasie znajdują się elementy opisane małą literą i .Operacja Flatten oznacza, że zamiast ścieżki A i B będziemy mieć tylko jedną i będzie ona równa 0. Czyli wszystkie elementy zostaną zebrane i wynikiem będzie tylko jedna gałąź i 24 pozycj

Flatten mapping data tree
Mapowanie Flatten

3. Graft

Teraz przejdziemy do funkcji graft. W tym przypadku będziemy mieli więcej ścieżek, więc nasze źródło będzie takie samo jak w poprzednim przykładzie. Gradt oznacza dodanie  jeszcze jednej ścieżki i w tym przypadku przeniesiemy punkty z poziomu elementu na poziom ścieżki, tak aby stworzyć dodatkową ścieżkę.

No dobra, spójrzmy więc na naszą pierwszą gałąź z naszego drzewa bazowego to było 0;0 i po graftawoani zmieniliśmy tę gałąź na dwie 0;0;0 i 0;0;1. Poniżej widać, że do każdej ostatniej ścieżki dodajemy 2 gałęzie.

Graft Mapping
Mapowanie Graft

4. Trim

Teraz przystępujemy do operacji Trim. Jak sama nazwa wskazuje, zamierzamy obciąć niektóre gałęzie. W tym przykładzie usuniemy ścieżkę B, czyli ostatnią ścieżkę w naszym drzewie. Nie oznacza to, że usuniemy wszystkie elementy ze ścieżki B. Wszystkie te elementy zostaną przeniesione na poziom elementów (i).

Innymi słowy…

połączymy wszystkie gałęzie, które na początku mają ten sam numer. W naszym przykładzie 0;0, 0;1 i 0;2 zostaną połączone. Dlatego w tej gałęzi otrzymamy 6 elementów. Aby lepiej to zobaczyć, spójrz na zdjęcie poniżej. Jak widać nadal mamy 24 punkty, nic nie usunęliśmy, ale zamiast 12 gałęzi mamy tylko cztery

Trim mapping in Grasshopper
Mapowanie Trim

5. Patch index

Istnieje zestaw stałych, które pomagają w mapowaniu, na przykład indeks ścieżki (Patch index). Możemy użyć tej stałej, jeśli chcemy, aby zmieniały się tylko nazwy gałęzi, a elementy danych pozostały na tych samych gałęziach, tylko maska zostanie zmieniona. Da nam to możliwość wyodrębnienia ilości gałęzi ze źródła i konwersji tej samej ilości gałęzi docelowych. W tym przypadku cała struktura wraz z pozycjami i gałęziami zostaje przeniesiona do gałęzi docelowych.

Czyli w rezultacie zawsze otrzymamy gałęzie w sekwencji od 0 do liczby gałęzi -1. Elementy pozostają w tej samej pozycji

Patch index in Grasshopper
Patch index

6. Patch count

Kolejna stała to liczba ścieżek (Patch count). Istnieje również możliwość powiązania liczby pozycji lub oddziałów z numerem indeksu oddziału docelowego. Na przykład, gdy gałąź źródłowa jest zdefiniowana jako A i B, a gałąź docelowa jako połowa liczby, końcowa nazwa gałęzi będzie w naszym przypadku 12, ponieważ w naszym przykładzie jest 12 gałęzi. Innymi słowy, liczba ścieżek jest wartością stałą i opisuje ilość gałęzi w drzewie.

Patch count Path Mapper
Path count

7. Item count

Podobną opcją do liczby ścieżek jest stała liczba elementów (Item count). Spowoduje to zdefiniowanie liczby na podstawie liczby pozycji elementów. Możesz użyć tej stałej do wykonania operacji odwracania (reverse) i odwróć wszystkie elementy w swoim drzewie.

W ścieżce docelowej wpisz item_count minus 1 minus i (zobacz zdjęcie poniżej)

iteam count Path Mapper
Item count

Praca domowa - Grasshopper drzewa danych

Teraz mam dla ciebie ćwiczenie! Pokazałem, jak wykonać odwrotną operację na elementach za pomocą komponentu path mapper. Ale jak odwrócisz elementy wewnątrz gałęzi? Napisz swoje rozwiązanie w komentarzach lub wyślij je na mój mail kris@learngrasshopper.com

8. Flip matrix

Komponent Flip matrix działa dobrze tylko z dwuwymiarową macierzą. W przypadku większej ilości gałęzi wyskoczy nam błąd. Do bardziej zaawansowanych struktur danych path mapper nadaje się idealnie. Możesz mieć tyle ścieżek, ile chcesz i możesz łatwo przełączać się między nimi.

Flip
Flip Matrix

Podsumowanie mapowania ścieżki w strukturze drzewa danych Grasshopper

Komponent Path Mapper umożliwia reorganizację struktury gałęzi poprzez zmianę nazwy oryginalnej ścieżki gałęzi i indeksowanie elementów do nowej ścieżki docelowej.

Istnieje jednak jedna wielka wada używania tego komponentu. Jeśli nastąpi jakakolwiek zmiana w drzewie źródłowym, komponent przestanie działać. Każda operacja uproszczenia drzewa lub też jego rozbudowanie zablokuje nam ten komponent. Dlatego musisz być bardzo precyzyjny we wszystkich zmianach w skrypcie i mieć świadomość struktury danych.

Learn Grasshopper

DOWNLOAD 5 STEPS TO LEARN GRASSHOPPER

5 Steps to learn Grasshopper is a guide full of books, exercises, tutorials and videos. Everyone will find something for themselves – regardless of the level of initiation.

Jaka jest Twoja opinia o Path Mapperze? Używasz go do pracy ze skomplikowanymi strukturami drzew?

Napisz w komentarzu poniżej, jak pracujesz ze strukturami drzewa danych w Grasshopperze.

Masz jakieś pytania odnośnie Grasshoppera albo Rhino?

Napisz do mnie kris@learngrasshopper.com

Zawsze odpowiadam !!

Sprawdź więcej moich porad w Grasshopperze:

5 trików w Grasshopperze na pozbycie się potwora spaghetti

5 trików w Grasshopperze usprawniających współpracę5

Jak używać masek w Grasshopperze?

Jeśli chcesz uzyskać więcej informacji o Grasshopper ze i nauczyć się modelowania parametrycznego, pobierz bezpłatny przewodnik – Pobierz bezpłatnie

Spodobał Ci się ten artykuł? Podziel się nim !

Dużo czasu i wysiłku poświęcamy na tworzenie wszystkich naszych artykułów i poradników. Byłoby świetnie, gdybyś poświęcił chwilę na udostępnienie tego wpisu!

Udostępnij:

Share on facebook
Share on twitter
Share on linkedin

Komentarze:

Subscribe
Powiadom o
guest
0 Comments
Inline Feedbacks
View all comments

Autor:

Pobierz raport płac:

Znajdziesz w nim min:

  • Wynagrodzenia specjalistów BIM z 24 krajów z całego świata,
  • Informacje na temat poziomu adopcji BIM w każdym z tych krajów,
  • Lista miejsc gdzie najlepiej szukać pracy w danym kraju. 
BIM Salary Report

Najnowsze wpisy: