# Обзор концепции геометрии

## Геометрия в Dynamo Sandbox

**Геометрия** — это язык, на котором осуществляется разработка. Если в основе языка или среды программирования лежит геометрия, это открывает широкие возможности для создания точных и надежных моделей, автоматизации процессов разработки и итерации проектов на основе алгоритмов.

Зная типы геометрии и то, [как они связаны друг с другом](#stepping-through-the-hierarchy), можно легко ориентироваться в наборе **узлов Geometry**, доступных в библиотеке. Узлы Geometry располагаются в алфавитном порядке, а не по иерархическому принципу. Здесь они отображаются примерно так же, как и в интерфейсе Dynamo.

!

Кроме того, эти знания позволят упростить и сделать более понятым процесс создания моделей в Dynamo, а также соотнесение потока данных в графике с изображением в области предварительного просмотра.

!

> 1. Обратите внимание на предполагаемую систему координат, представленную сеткой и цветными осями.
> 2. Выбранные узлы визуализируют соответствующую геометрию (если узел создает геометрию) в фоновом режиме.

> Скачайте файл примера, щелкнув указанную ниже ссылку.
>
> Полный список файлов примеров можно найти в приложении.

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

## Понятие геометрии

В обычном понимании геометрия — это исследование формы, размера, относительного положения фигур и свойств пространства. Эта дисциплина имеет богатую историю, берущую свое начало тысячи лет назад. Благодаря появлению компьютеров мы получили мощный инструмент для описания, изучения и генерирования геометрических объектов. В настоящее время можно с легкостью рассчитать сложнейшие геометрические взаимодействия, и ни для кого не секрет, что мы активно используем эти возможности.

> Если вы хотите узнать, насколько разнообразной и сложной может быть геометрия, разрабатываемая с помощью компьютеров, введите словосочетание «Стенфордский кролик» в любой поисковой системе. Это каноническая модель, которая используется для тестирования алгоритмов.

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

1. Геометрия —это **данные**, поэтому с точки зрения компьютера и приложения Dynamo геометрический кролик практически ничем не отличается от обычного числа.
2. Геометрия основана на **абстракции**: по сути, все геометрические элементы описываются с помощью чисел, отношений и формул в заданной пространственной системе координат.
3. Геометрия имеет **иерархию**: точки образуют линии, линии образуют поверхности и т. д.
4. Геометрия одновременно описывает **часть и целое**: если есть кривая, то она представляет собой и форму, и все возможные точки вдоль нее.

На практике эти принципы означают, что пользователи должны понимать, над чем они работают (тип геометрии, как она была создана и т. д.). Это понимание позволит нам с легкостью конструировать, разбирать и снова собирать различные геометрические объекты в ходе разработки сложных моделей.

## Перемещение между уровнями иерархии

Давайте рассмотрим геометрию с точки зрения принципов абстракции и иерархии. Хоть это и не всегда очевидно, эти принципы тесно взаимосвязаны, и если в этом не разобраться, то при разработке детализированных рабочих процессов и моделей можно столкнуться с серьезным препятствием. Для начала давайте воспользуемся понятием пространственным измерений в качестве основной характеристики моделируемых нами объектов. Зная количество измерений, необходимых для описания формы, мы сможем приблизиться к пониманию иерархического устройства геометрии.

\![Вычислительная геометрия](https://github.com/DynamoDS/DynamoPrimerNew/blob/master-rus/.gitbook/assets/Geometry%20for%20-%20GeometryDimensionality.jpg)

> 1. **Точка** (определяемая координатами) не имеет измерений. Она описывается только числами, соответствующими каждой из координат.
> 2. **Отрезок** (определяемый двумя точками), в свою очередь, имеет *одно* измерение: мы можем перемещаться вдоль отрезка вперед (положительное направление) и назад (отрицательное направление).
> 3. **Плоскость** (определяемая двумя линиями) имеет *два* измерения: мы можем перемещаться не только вперед и назад, но и влево или вправо.
> 4. **Параллелепипед** (определяемый двумя плоскостями) имеет *три* измерения: в дополнение к указанному выше, мы можем перемещаться вверх и вниз.

Пространственные измерения — это удобный способ классификации геометрический объектов, но не всегда самый лучший. В конце концов, при моделировании используются не только точки, отрезки, плоскости и параллелепипеды. Что, если нужен изогнутый объект? Кроме этого, существует еще одна категория геометрических типов, которые являются полностью абстрактными: они определяют такие свойства, как ориентация, объем или связи между отдельными частями объекта. Такой объект, как вектор, например, абсолютно неосязаем. Так как же описать его относительно того, что мы видим в пространстве? Нужна более подробная классификация иерархии геометрических объектов, которая должна отражать разницу между абстрактными типами (вспомогательными средствами), которые можно сгруппировать по выполняемой ими функции, и типами, которые используются для описания формы элементов модели.

## Дальнейшая работа с геометрией

Создание моделей в Dynamo не ограничено объектами, которые можно создать с помощью узлов. Есть несколько способов расширить возможности использования геометрии.

1. Dynamo позволяет импортировать файлы: используйте файлы CSV для создания облаков точек или файлы SAT для добавления поверхностей.
2. При работе с Revit можно ссылаться на элементы Revit, чтобы использовать их в Dynamo.
3. В Dynamo Package Manager реализованы дополнительные функции, поддерживающие расширенный набор типов геометрии и операций. Ознакомьтесь с возможностями пакета [Mesh Toolkit](https://github.com/DynamoDS/Dynamo/wiki/Dynamo-Mesh-Toolkit).


---

# Agent Instructions: 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:

```
GET https://primer2.dynamobim.org/ru/5_essential_nodes_and_concepts/5-2_geometry-for-computational-design/1-geometry-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
