Przewodnik po drzewach danych

Przewodnik po drzewach danych dla początkujących

Jednym z najtrudniejszych aspektów pracy z Grasshopperem jest zrozumienie struktury drzewa danych, co może być zadaniem przerażającym nawet dla najbardziej doświadczonych użytkowników. Jednak, dzięki praktyce i odpowiednim wskazówkom, opanowanie drzew danych może otworzyć zupełnie nowy poziom możliwości projektowych. W tym artykule będę omawiał podstawy drzew danych w Grasshopperze a na samym końcu udostępnię ćwiczenia, które pomogą Ci w praktyce lepiej zrozumieć cały ten koncept. Dzięki temu artykułowi i załączonym ćwiczeniom będziesz miał/a solidne pojęcie na temat działania drzew danych i będziesz mógł/mogła zastosować tę wiedzę w praktyce.

Spis treści

1. Po co potrzebujemy struktur drzew danych?

Struktury drzew danych są szczególnie przydatne podczas pracy z złożonymi modelami, które wymagają uporządkowania danych w określony sposób. Zwykle używane są do przechowywania i organizowania dużych ilości danych. Ta struktura pozwala na przechowywanie danych w hierarchiczny sposób, z wieloma listami w jednej liście. Na przykład, jeśli projektujesz fasadę budynku i potrzebujesz zorganizować rozmieszczenie różnych paneli, struktury drzew danych będą wybawieniem. Możesz stworzyć listy paneli dla każdej sekcji lub piętra fasady, a następnie grupować te listy za pomocą struktury drzewa danych. To pozwala na łatwe manipulowanie panelami w każdej sekcji i na całej fasadzie. Zamiast wprowadzać zmiany dla każdego piętra osobno, na przykład zmianę koloru, można wprowadzić zmianę na wszystkich piętrach naraz.

2. Jedno i wielo-elementowe listy

Aby zrozumieć struktury drzew danych, najpierw omówmy jednoelementowe listy. Jednoelementowa lista zawiera pojedynczy element.

Jednoelementowa lista
Jednoelementowa lista

Jednak jeżeli mamy do czynienia z wieloma elementami (więcej niż jeden) nazywamy wtedy taką grupę jako listę. O listach można myśleć jako o skrzynce, która zawiera jabłka, a te można indywidualnie lub grupowo manipulować.

Lista
Lista

Można łatwo rozróżnić pojedyncze elementy a listy. Różnicę można zobaczyć w liniach, które je reprezentują. Pojedyncza linia zawiera pojedynczy element, a lista jes pokazana jako podwójna linia.

3. Struktury drzew danych

Struktury drzew danych wprowadzają kolejny poziom złożoności, wprowadzając wiele gałęzi. Każda gałąź jest jak osobna lista w drzewie danych, a te gałęzie są reprezentowane przez nawiasy klamrowe z numerem wewnątrz. Możesz użyć param viewer (komponentu w Grasshopperze) do zobaczenia, ile gałęzi znajduje się w drzewie danych i ile elementów znajduje się w każdej gałęzi. Zwróć uwagę na wygląd przesyłanych drzew danych. Przewody są przedstawione jako grube przerywane linie.

W związku z drzewami danych pojawiły się nowe pojęcia. Przyjrzyjmy się im dokładniej.

Zapisz się na darmowy mailing, a co tydzień będziesz otrzymywać cenną wiedzę na temat Grasshoppera.
Już ponad 6000 inżynierów uczy się ze mną i w pełni wykorzystuje możliwości parametrycznego projektowania.

4. Gałęzie

Jednym z najważniejszych pojęć w drzewach danych są gałęzie. Gałąź można traktować jako pojemnik zawierający zbiór elementów. Jedna gałąź, to jedna osobna lista. Każda gałąź może mieć wiele podgałęzi, tworząc strukturę hierarchiczną. W każdej gałęzi elementy są przechowywane w określonej kolejności, zaczynając od lewej strony i kierując się w prawo.

z komponentem Parameter View możesz sprawdzić liczbę gałęzi w swoim drzewie danych.
Z komponentem Parameter View możesz sprawdzić liczbę gałęzi w swoim drzewie danych.

5. Ścieżki

Ścieżki służą do lokalizacji i dostępu do elementów w drzewie. Składają się z listy indeksów, oddzielonych średnikami, które opisują położenie elementu w drzewie. Na przykład ścieżka {0;2;1} odnosi się do trzeciego elementu w drugiej podgałęzi pierwszej gałęzi.

Ścieżki w Grasshopperze umieszcza się w nawiasach klamrowych. W bardziej zaawansowanych drzewach ścieżki są oddzielane średnikami, na przykład {0;1;0} {0;1;1} {0;2;0} {0;2;1}.
Ścieżki w Grasshopperze umieszcza się w nawiasach klamrowych. W bardziej zaawansowanych drzewach ścieżki są oddzielane średnikami, na przykład {0;1;0} {0;1;1} {0;2;0} {0;2;1}.

6. Elementy

Każda gałąź może zawierać wiele elementów, a na tych elementach można operować tak samo, jak na liście.

W każdej gałęzi drzewa danych może być różna liczba elementów
W każdej gałęzi drzewa danych może być różna liczba elementów

7. Indeksy

Indeksy określają pozycję elementu w gałęzi. Każdemu elementowi w gałęzi przypisany jest unikalny numer indeksu, zaczynając od 0 i zwiększając się o 1 dla każdego kolejnego elementu. Te numery indeksów są używane do dostępu i manipulowania elementami w gałęzi.

W każdej gałęzi (liście) indeksy zawsze zaczynają się od 0.
W każdej gałęzi (liście) indeksy zawsze zaczynają się od 0.

Zwiększając złożoność drzewa danych, można dodać więcej gałęzi, aby przechowywać więcej danych. Liczbę gałęzi określa się jako głębokość drzewa, która jest opisana w nawiasach klamrowych z separatorem średnika. Pierwsza liczba przed średnikiem wskazuje pierwszy poziom drzewa, a kolejne liczby wskazują kolejne poziomy drzewa. Ostatni poziom zawsze zawiera elementy, które można zidentyfikować za pomocą “N=” po którym podana jest liczba elementów.

Na przykład, drzewo danych o głębokości 3 miałoby dwie główne gałęzie z wieloma podgałęziami. Każda podgałąź może mieć swoje własne podgałęzie, tworząc hierarchię.

Przedstawiający drzewo danych z kilkoma poziomami gałęzi i elementami
Przedstawiający drzewo danych z kilkoma poziomami gałęzi i elementami

8. Ważne zagadnienia do zapamiętania w kontekście drzew danych:

  • Porządek gałęzi i elementów zawsze jest od lewej do prawe.

To oznacza, że pierwsza gałąź znajduje się po lewej, a ostatnia po prawej, a elementy w każdej gałęzi są uporządkowane również od lewej do prawej.

  • Grasshopper przechowuje dane w hierarchicznej strukturze.

Ta hierarchiczna organizacja umożliwia manipulowanie dużymi ilościami informacji w uporządkowany sposób.

  • Drzewa rosną stopniowo i liniowo.

To oznacza, że nowe gałęzie są dodawane w kolejności liniowej, tworząc czytelną i logiczną strukturę, która jest łatwa do nawigacji.

  • Struktura może być zmieniona w dowolnym momencie.

To umożliwia optymalizację i dostosowanie organizacji danych do konkretnych potrzeb i celów analizy.

9. Zła struktura drzewa danych

Ważne jest zrozumienie, że struktura drzewa danych może być zmieniana w dowolnym momencie. Możliwe są operacje takie jak dodawanie lub usuwanie gałęzi lub przenoszenie do różnych poziomów. Jednakże, nie zmienia to elementów znajdujących się w strukturze, pozostają one takie same.

Niestety, niektóre struktury drzewa danych mogą być przykładem złej praktyki. Patrząc na przykład na obrazku, widzimy, że drzewo nie rośnie w sposób liniowy. Klamry w param viewerze po lewej stronie pokazują, że brakuje danych dla ścieżki {0;0;0}. Następna idzie do {0;3;0}, a trzecia do {2;1;0}. To jest zły przykład struktury drzewa danych.

Przykłady złej struktury drzewa danych
Przykłady złej struktury drzewa danych

Pamiętajmy, że praca na nieregularnej strukturze drzewa danych może prowadzić do problemów. Dlatego mądrze jest unikać takich struktur. To powinna być Twoja główna zasada. Zamiast tego, powinniśmy dążyć do stworzenia dobrej struktury drzewa danych. Dzięki temu zapewniamy, że nasze dane są zorganizowane, dostępne i łatwe do pracy. Dobrze zorganizowane drzewo danych nie tylko pomoże nam zaoszczędzić czas, ale również poprawi efektywność naszej pracy.

10. Struktura drzewa danych jako system struktury folderów

Struktura drzewa danych w Grasshopperze może być porównana do systemu struktury folderów w systemie Windows. Każdy folder odpowiada określonemu drzewu danych, a ostatni folder w ostatnim poddrzewie to miejsce, w którym przechowywany jest przedmiot. W przypadku drzewa danych, elementem jest dokument notatnika, w którym przechowywane są dane.

Drzewo danych przedstawione w postaci hierarchii folderów w systemie Windows
Drzewo danych przedstawione w postaci hierarchii folderów w systemie Windows

Na przykład, pierwszy element w drzewie danych {0;0;0}[0] może być reprezentowany przez plik notatnika zawierający literę A, podczas gdy {1;2;0}[3] byłby plikiem notatnika zawierającym literę K – czwartym elementem w gałęzi {1;2;0}. Ten hierarchiczny system umożliwia łatwe organizowanie i przechowywanie danych, podobnie jak system struktury folderów organizuje pliki i dokumenty na komputerze.

Konkretne elementy znajdujące się w systemie folderów
Konkretne elementy znajdujące się w systemie folderów

11. Podsumowanie

W tym artykule wyjaśniłem złożoną koncepcję drzew danych i jak są one wykorzystywane do rozwiązywania złożonych problemów geometrycznych.
Poniżej znajdziesz obiecane zadania z Grasshoppera dotyczące tematu który omówiłem w powyźszym artykule.

Sprawdź obiecane ćwiczenia dotyczące struktury drzewa danych
(upewnij się, że masz zainstalowaną wtyczkę Metahopper)

Zalecam również obejrzenie towarzyszącego filmu na temat generowania drzew danych w Grasshopperze, gdzie pokazany jest proces ręcznego tworzenia drzew. Artykuł obejmuje również cztery różne grupy komponentów, które automatycznie generują drzewa danych i dostarcza wskazówek, jak unikać powszechnych błędów podczas pracy z drzewami danych w Grasshopperze – LINK DO ARTYKUŁU

12. Zaproszenie na kurs

Zapisz się i otrzymaj:

  • Dożywotni dostęp do WSZYSTKICH materiałów (dostęp 24/7 do platformy, gdziekolwiek jesteś, kiedykolwiek chcesz, nawet za rok lub trzy)
  • Dostęp do WSZYSTKICH możliwych aktualizacji i bonusów z wszystkich przyszłych edycji
  • Mnóstwo przykładów inżynierskich wykorzystujących Rhino i Grasshopper z dobrze przygotowanymi praktycznymi zadaniami domowymi
  • Filmy, pliki PDF z animacjami GIF, słowniki nowych słów związanych z Rhino, Grasshopper i programowaniem oraz listę komponentów wykorzystanych w programie szkoleniowym z szczegółowymi opisami.
  • Dostęp do zamkniętej społeczności Grasshopper na Discordzie – miejsca stworzonego, aby wesprzeć Cię w Twojej nauce. 
  • Sesje na żywo z pytaniami i odpowiedziami ze mną 🙂 ty zadajesz pytania, ja odpowiadam.
  • Certyfikat ukończenia szkolenia Grasshopper Fundamentals Training wydany przez LearnGrasshopper.com
  • Dodatkowe materiały: Wprowadzenie do Rhino, Lekcje dotyczące eksportowania IFC z Grasshoppera i dodatkowe webinaria Grasshoppera.
  • Gwarancja satysfakcji w 100% – ZERO RYZYKA (masz 30 dni na zwrot z dowolnego powodu, bez zadawania pytań)

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:

Komentarze:

Subscribe
Powiadom o
guest
0 Comments
najstarszy
najnowszy
Inline Feedbacks
View all comments

Autor:

Pobierz przewodnik po projektach BIM:

Po przeczytaniu tego poradnika dowiesz się:

  1. Jak BIM jest wykorzystywany przy największych projektach w Norwegii
  2. Jakie były wyzwania dla zespołu projektowego i jak zostały rozwiązane
  3. Jakie były wyzwania na budowie i jakie było nasze podejście do nich

Najnowsze wpisy: