> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/pl/dynamo-for-civil-3d/sample-workflows/surveying/point-group-management.md).

# Zarządzanie grupami punktów

<figure><img src="https://2069116583-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT8P36P8hlroW5MOSGuXc%2Fuploads%2Fgit-blob-f0736953f6bb95b15c72f60ebfd719e004c0efd6%2FSurvey_CreatePointGroups_Player.gif?alt=media" alt=""><figcaption></figcaption></figure>

Praca z punktami COGO i grupami punktów w programie Civil 3D jest podstawowym elementem wielu procesów realizowanych od pola do zakończenia. Dodatek Dynamo naprawdę sprawdza się w przypadku konieczności zarządzania danymi. W tym przykładzie zademonstrujemy jeden potencjalny przypadek zastosowania.

## Cel

> :dart: Utworzenie grupy punktów dla każdego niepowtarzalnego opisu punktu COGO.

## Kluczowe pojęcia

> * Praca z listami
> * Grupowanie podobnych obiektów za pomocą węzła **List.GroupByKey**
> * Wyświetlanie niestandardowych danych wyjściowych w Odtwarzaczu Dynamo

## Zgodność wersji

{% hint style="success" %}
Ten wykres będzie działać w programie \*\*Civil 3D 2020\*\* i w nowszych wersjach.
{% endhint %}

## Zestaw danych

Najpierw pobierz pliki przykładów poniżej, a następnie otwórz plik DWG i wykres dodatku Dynamo.

{% file src="/files/UnLsnsIEkK1Fuqa9lko7" %}

{% file src="/files/ClAmRQgO8CktzO6cbreU" %}

## Rozwiązanie

Poniżej przedstawiono przegląd logiki na tym wykresie.

> 1. Pobieranie wszystkich punktów COGO w dokumencie
> 2. Grupowanie punktów COGO na podstawie opisu
> 3. Tworzenie grup punktów
> 4. Wyprowadzanie danych z podsumowaniem do Odtwarzacza Dynamo

Zacznijmy!

### Pobieranie punktów COGO

Pierwszym krokiem jest pobranie wszystkich grup punktów w dokumencie, a następnie pobranie wszystkich punktów COGO w każdej grupie. Dzięki temu otrzymamy *listę zagnieżdżoną* lub „listę list”, z którą łatwiej będzie pracować później, jeśli spłaszczymy wszystko do pojedynczej listy za pomocą węzła **List.Flatten**.

{% hint style="info" %}
Jeśli nie zdarzyło Ci się jeszcze pracować z listami, skorzystaj z sekcji \[2-working-with-lists.md]\(../../../5\\\_essential\\\_nodes\\\_and\\\_concepts/5-4\\\_designing-with-lists/2-working-with-lists.md "mention").
{% endhint %}

<figure><img src="https://2069116583-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT8P36P8hlroW5MOSGuXc%2Fuploads%2Fgit-blob-b6d5829e6972d7bcf560913c4c888b076f0b8c63%2FSurvey_CreatePointGroups_GetPoints.png?alt=media&amp;token=e278c94e-b5c8-45b5-8d94-e61da3530c3c" alt=""><figcaption><p>Pobieranie wszystkich grup punktów i punktów COGO</p></figcaption></figure>

### Grupowanie punktów na podstawie opisu

Mamy już wszystkie punkty COGO. Teraz musimy rozdzielić je na grupy na podstawie ich opisów. Właśnie do tego służy węzeł **List.GroupByKey**. Zasadniczo grupuje on wszystkie elementy o tym samym kluczu.

<figure><img src="https://2069116583-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT8P36P8hlroW5MOSGuXc%2Fuploads%2Fgit-blob-1dc33f106d1fe23c1ddcfaf5d44981bb93c5e073%2FSurvey_CreatePointGroups_GroupPoints.png?alt=media&amp;token=433e01c7-bb82-448e-9b30-d1f4b14979ef" alt="" width="563"><figcaption><p>Grupowanie punktów COGO na podstawie opisu</p></figcaption></figure>

### Tworzenie grup punktów

Najcięższą pracę mamy już za sobą. Ostatnią czynnością jest utworzenie nowych grup punktów programu Civil 3D na podstawie zgrupowanych punktów COGO.

<figure><img src="https://2069116583-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT8P36P8hlroW5MOSGuXc%2Fuploads%2Fgit-blob-c00a6e7ad8cf938ca43602d6f0305bc93ebfd5ac%2FSurvey_CreatePointGroups_CreatePointGroups.png?alt=media&amp;token=7352a3d5-8c12-45cc-ab07-6d490b1e4c6f" alt="" width="371"><figcaption><p>Tworzenie nowych grup punktów</p></figcaption></figure>

### Podsumowanie danych wyjściowych

Po uruchomieniu wykresu w podglądzie tła dodatku Dynamo niczego nie ma, ponieważ nie pracujemy z żadną geometrią. Dlatego jedynym sposobem sprawdzenia, czy wykres jest wykonywany poprawnie, jest sprawdzenie obszaru narzędzi lub podglądów danych wyjściowych węzłów. Jeśli jednak wykres zostanie uruchomiony za pomocą **Odtwarzacza Dynamo**, można przekazać więcej informacji na temat wyników wykresu, drukując podsumowanie utworzonych grup punktów. Wystarczy kliknąć prawym przyciskiem myszy węzeł i skonfigurować dla niego ustawienie *Is Output* (Dane wyjściowe). W tym przypadku użyjemy węzła **Watch** o zmienionej nazwie, aby wyświetlić wyniki.

<figure><img src="https://2069116583-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT8P36P8hlroW5MOSGuXc%2Fuploads%2Fgit-blob-2148418c7890a91a6dd1a1574f3331f5ee499159%2FSurvey_CreatePointGroups_Output.png?alt=media" alt="" width="437"><figcaption><p>Skonfigurowanie węzła jako <em>Is Output</em> (Dane wyjściowe) spowoduje wyświetlenie jego zawartości w danych wyjściowych Odtwarzacza Dynamo</p></figcaption></figure>

### Wynik

Oto przykład uruchomienia wykresu za pomocą **Odtwarzacza Dynamo**.

<figure><img src="https://2069116583-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT8P36P8hlroW5MOSGuXc%2Fuploads%2Fgit-blob-f0736953f6bb95b15c72f60ebfd719e004c0efd6%2FSurvey_CreatePointGroups_Player.gif?alt=media" alt=""><figcaption><p>Uruchamianie wykresu za pomocą Odtwarzacza Dynamo i wyświetlanie wyników w obszarze narzędzi</p></figcaption></figure>

{% hint style="info" %}
Jeśli nie znasz jeszcze Odtwarzacza Dynamo Player, skorzystaj z sekcji \[dynamo-player.md]\(../../dynamo-player.md "mention").
{% endhint %}

> :tada: Misja wykonana!

## Pomysły

Oto kilka pomysłów na rozszerzenie możliwości tego wykresu.

{% hint style="info" %}
Zmodyfikuj grupowanie punktów tak, aby było oparte na \*\*pełnym opisie\*\*, a nie na opisie nieprzetworzonym.
{% endhint %}

{% hint style="info" %}
Grupuj punkty na podstawie innych wybranych \*\*wstępnie zdefiniowanych kategorii\*\* (na przykład „Ground shots”, „Monuments” itp.)
{% endhint %}

{% hint style="info" %}
Automatycznie twórz powierzchnie TIN dla punktów w niektórych grupach.
{% endhint %}
