> 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/ru/dynamo-for-civil-3d/sample-workflows/surveying/point-group-management.md).

# Управление группами точек

<figure><img src="/files/XtTH0oD8SPh4QU6RKY1x" alt=""><figcaption></figcaption></figure>

Работа с точками COGO и группами точек в Civil 3D является ключевым элементом многих процессов, связанных с завершением обработки полевых данных. Dynamo отлично подходит для управления данными. В этом примере мы рассмотрим один из возможных примеров использования.

## Цель

> :dart: Создание группы точек для каждого уникального описания точки COGO.

## Основные этапы

> * Работа со списками
> * Группировка схожих объектов с помощью узла **List.GroupByKey**
> * Отображение пользовательских выходных данных в проигрывателе Dynamo

## Совместимость версий

{% hint style="success" %}
Этот график будет работать в \*\*Civil 3D 2020\*\* и более поздних версиях.
{% endhint %}

## Набор данных

Сначала скачайте файлы примеров ниже, а затем откройте файл DWG и график Dynamo.

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

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

## Решение

Ниже представлен обзор логики, используемой в этом графике.

> 1. Получение всех точек COGO в документе.
> 2. Группировка точек COGO по описанию.
> 3. Создание групп точек.
> 4. Вывод сводных данных в проигрывателе Dynamo.

Приступим!

### Получение точек COGO

Сначала необходимо получить все группы точек в документе, а затем все точки COGO в каждой группе. В результате мы получим *вложенный список*, или список списков. Если мы выровняем все элементы в один список с помощью узла **List.Flatten**, это упростит дальнейшую работу.

{% hint style="info" %}
Если вы еще не знакомы со списками, см. раздел \[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="/files/Mx6JBae7oNW46f1OLXRN" alt=""><figcaption><p>Получение всех групп точек и точек COGO</p></figcaption></figure>

### Группирование точек по описанию

Теперь, когда мы получили все точки COGO, необходимо разделить их на группы на основе их описаний. С этой задаче блестяще справится узел **List.GroupByKey**. По сути, он группирует все элементы с одинаковым ключом.

<figure><img src="/files/7mekFsZTWANN0Xe0alw8" alt="" width="563"><figcaption><p>Группирование точек COGO по описанию</p></figcaption></figure>

### Создание групп точек

Самое сложное позади. Последний шаг — создание новой группы точек Civil 3D на основе сгруппированных точек COGO.

<figure><img src="/files/n4Dcz1QFoCKTGO8gXMQH" alt="" width="371"><figcaption><p>Создание новой группы точек</p></figcaption></figure>

### Вывод сводных данных

При запуске графика в области фонового просмотра Dynamo не отображается ничего, поскольку у нас нет никакой геометрии. Так что единственный способ убедиться, что график выполняется правильно, — проверить область инструментов или выполнить предварительный просмотр выходных данных узла. Однако если запустить график с помощью **проигрывателя Dynamo**, можно получить дополнительную информацию о результатах за счет вывода сводки по созданным группам точек. Для этого щелкнем узел правой кнопкой мыши и установим для него значение *Является выводом*. В данном случае для просмотра результатов используется переименованный узел **Watch**.

<figure><img src="/files/A6SjZVPNnEJQM3JJVKzf" alt="" width="437"><figcaption><p>Если задать для узла значение <em>Является выводом</em>, его содержимое будет отображаться в выводе проигрывателя Dynamo.</p></figcaption></figure>

### Результат

Ниже приведен пример запуска графика с помощью **проигрывателя Dynamo**.

<figure><img src="/files/XtTH0oD8SPh4QU6RKY1x" alt=""><figcaption><p>Запуск графика с помощью проигрывателя Dynamo и просмотр результатов в области инструментов</p></figcaption></figure>

{% hint style="info" %}
Если вы еще не знакомы с проигрывателем Dynamo, см. раздел \[dynamo-player.md]\(../../dynamo-player.md "mention").
{% endhint %}

> :tada: Миссия выполнена!

## Идеи

Вот несколько вариантов того, как можно расширить возможности этого графика.

{% hint style="info" %}
Изменение принципа группировки точек, чтобы она выполнялась по \*\*полному описанию\*\*, а не по исходному.
{% endhint %}

{% hint style="info" %}
Группировка точек по другим \*\*готовым категориям\*\* (например, «Базовые снимки», «Геодезические знаки» и т. д.).
{% endhint %}

{% hint style="info" %}
Автоматическое создание поверхностей TIN для точек в определенных группах.
{% endhint %}
