> For the complete documentation index, see [llms.txt](https://docs.geodin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.geodin.com/geodin-ground/ru/rabochie-processy-i-integracii/arcgis-integration/arcgis-pro-attach-reports.md).

# Привязка отчетов к аннотациям скважин

{% embed url="<https://www.youtube.com/watch?v=34Gydh4vkws>" %}

> **Видео по главам:** 0:00 Как GeoDin организует папки отчётов по скважинам | 0:37 Поиск аннотаций документов | 1:14 Подготовка поля AttachKey | 1:53 Выбор скважин со связанными документами | 2:25 Вычисление значений AttachKey | 3:33 Включение и создание совпадений вложений | 4:35 Добавление вложений | 5:34 Проверка прикреплённых отчётов

Когда чертёж Civil 3D со скважинами GeoDin® Ground загружается в ArcGIS Pro ([предыдущий урок](/geodin-ground/ru/rabochie-processy-i-integracii/arcgis-integration/arcgis-pro-ground-model.md)), экспортированные PDF-отчёты можно прикрепить к аннотации документа каждой скважины — так из нужного объекта открывается нужный геотехнический отчёт. В этом руководстве создаётся ключ сопоставления и запускаются два инструмента геообработки, которые связывают PDF с аннотациями.

{% hint style="info" %}
Для того же рабочего процесса, начиная с экспортированных из GeoDin® слоёв точек (одна запись на скважину), см. [Прикрепление отчётов](https://docs.geodin.com/integrations-and-plug-ins/overview/attach-reports) в документации GeoDin®. Версия ниже работает со слоем аннотаций Civil 3D, где у каждой скважины **несколько** записей аннотаций.
{% endhint %}

## Шаг 1: Найдите отчёты и проверьте аннотации

* При импорте GeoDin® Ground создаёт рядом с чертежом папку документов, структурированную по проектам, с одной подпапкой на каждую скважину, в каждой из которых хранится геотехнический отчёт этой скважины.
* Скопируйте PDF-отчёты в одну рабочую папку, чтобы упростить сопоставление.

<figure><img src="/files/43c80ba72fd3e1e0aaf2b917b186546eeadb7e11" alt=""><figcaption><p>Экспортированная папка документов и PDF-отчёт Geotech Soil Log для скважины</p></figcaption></figure>

* В таблице атрибутов слоя аннотаций проверьте запись документа скважины: её **RefName** отображается как «1 document(s)».

<figure><img src="/files/99d797a0579109c48a803618797f6f13168efd5f" alt=""><figcaption><p>Запись аннотации документа в таблице атрибутов</p></figcaption></figure>

## Шаг 2: Добавьте поле ключа

* Откройте представление полей класса объектов и добавьте новое поле с именем **AttachKey** с **Тип данных = Текст**. Сохраните изменения.

<figure><img src="/files/3ee9bd35accfe227ad950ec9c43a8a342ae5bafa" alt=""><figcaption><p>Поле AttachKey добавлено как Текст</p></figcaption></figure>

## Шаг 3: Выберите только аннотации документов

* Используйте **Выбор по атрибутам** с условием: **RefName содержит текст** `документ`.
* Примените и проверьте число выбранных объектов перед продолжением — ключ должен вычисляться только для этих записей.

<figure><img src="/files/0f35d528c8cbab8dc94a8006cf95f8bd454b5e4d" alt=""><figcaption><p>Выбор записей аннотаций документов</p></figcaption></figure>

## Шаг 4: Вычислите ключ

* При активном выделении щёлкните правой кнопкой **AttachKey > Calculate Field**, задайте **Expression Type = Python**, выражение `extract_bh(!Layer!)`, и этот блок кода:

```python
def extract_bh(layer):
    layer = layer.upper()

    # Определите известные префикс и суффикс
    prefix = "LOC_BASE-"
    suffix = "-BASIC"

    if layer.startswith(prefix) and layer.endswith(suffix):
        return layer[len(prefix):-len(suffix)] + " -"

    return None
```

<figure><img src="/files/203f73a3b43e7426acb08b8e623294b77ed495be" alt=""><figcaption><p>Инструмент Calculate Field применён только к выбранным записям</p></figcaption></figure>

* Завершающий `" -"` дефис сделан намеренно: он делает ключ достаточно специфичным, чтобы точно сопоставляться с одним именем файла отчёта по префиксу, поэтому скважины с похожими именами (BH1 и BH1A) не могут быть сопоставлены друг с другом.

<figure><img src="/files/fe3af253340723b8d171ce123ecf31381dcd94b3" alt=""><figcaption><p>Заполненный ключ — имя скважины плюс завершающий дефис</p></figcaption></figure>

## Шаг 5: Включите вложения

* Откройте класс объектов **Свойства > Управление** и включите **Вложения** (вложения — это объект геобазы; слой аннотаций должен быть классом объектов геобазы, а не shapefile). Сохраните.

<figure><img src="/files/4b2aee0b2dbece0a53fdeb87917ea0969ea16cf2" alt=""><figcaption><p>Вложения включены в классе объектов</p></figcaption></figure>

## Шаг 6: Сгенерируйте таблицу сопоставления

* Запустите **Создать таблицу сопоставления вложений** :
  * **Входной набор данных**: слой аннотаций (выбранные записи).
  * **Входная папка**: рабочая папка с PDF-файлами.
  * **Ключевое поле**: `AttachKey` - **Фильтр входных данных**: `*.pdf` - **Шаблон сопоставления**: **Префикс**.

<figure><img src="/files/e5418d8098e3f5ebcb07627ca434ddb9eeac9cbe" alt=""><figcaption><p>Создайте таблицу сопоставления вложений с параметром шаблона сопоставления, установленным в «Префикс»</p></figcaption></figure>

## Шаг 7: Добавьте вложения

* Запустите **Добавить вложения** с тем же входным набором данных, **Поле соединения входных данных** `OBJECTID`, таблицей сопоставления из шага 6 и **Поле соединения сопоставления** `MatchID`.

<figure><img src="/files/6083bea6873f8d064c1135f21753cea6a2c2c08b" alt=""><figcaption><p>Добавить вложения, связывающий OBJECTID с MatchID</p></figcaption></figure>

## Шаг 8: Проверьте

* Щёлкните аннотацию документа на сцене и прокрутите её всплывающее окно: геотехнический отчёт появится как вложение.
* Проверьте ещё одну или две скважины, чтобы убедиться, что сопоставление работает стабильно.

<figure><img src="/files/c1911403c8c2ea201d0edf19e26c68427cec32f9" alt=""><figcaption><p>Отчёт, прикреплённый к аннотации, проверен во всплывающем окне</p></figcaption></figure>

## Дополнительные настройки

* **Область выделения** - вычисляйте ключ **только для выбранных записей документов**; вычисление по всем строкам создаёт неверные сопоставления.
* **Специфичность ключа** - если несколько отчётов имеют похожие имена, перед сопоставлением сделайте формат ключа более специфичным (для этого и существует завершающий `" -"` ).

***

## Работа с сопоставлением вложений

Проверьте, что вложения включены, прежде чем запускать инструменты сопоставления и добавления, и выборочно проверьте одну скважину после каждого этапа (ключ вычислен, таблица сопоставления создана, вложения добавлены), чтобы несоответствие было обнаружено на шаг ближе к его причине, а не в конце.

***

**Следующий шаг:** [Опубликуйте и просмотрите модель как веб-сцену](/geodin-ground/ru/rabochie-processy-i-integracii/arcgis-integration/arcgis-web-scene.md) - прикреплённые отчёты остаются доступны во всплывающих окнах опубликованной сцены.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.geodin.com/geodin-ground/ru/rabochie-processy-i-integracii/arcgis-integration/arcgis-pro-attach-reports.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
