# Интерфейс командной строки Dynamo

`-o, -O, --OpenFilePath`: указание программе Dynamo открыть файл с командами по указанному пути и выполнить их. Этот параметр поддерживается только при запуске из DynamoSandbox.

`-c, -C, --CommandFilePath`: указание программе Dynamo открыть файл с командами по указанному пути и выполнить их. Этот параметр поддерживается только при запуске из DynamoSandbox.

`-v, -V, --Verbose`: указание программе Dynamo вывести все выполняемые вычисления в файл XML по указанному пути.

`-g, -G, --Geometry`: указание программе Dynamo вывести геометрию из всех вычислений в файл JSON по указанному пути.

`-h, -H, --help`: получение справки.

`-i, -I, --Import`: указание программе Dynamo импортировать сборку как библиотеку узлов. Этот аргумент должен быть путем к одному файлу `.dll`. Если требуется импортировать несколько файлов `.dll`, укажите их через пробел: `-i 'assembly1.dll' 'assembly2.dll'`.

`--GeometryPath`: относительный или абсолютный путь к каталогу, содержащему ASM. Если этот параметр указан, то вместо поиска ASM на жестком диске будет выполняться загрузка непосредственно из этого пути.

`-k, -K, --KeepAlive`: в режиме Keepalive не завершайте запущенный процесс Dynamo до тех пор, пока загруженное расширение не завершит его.

`--HostName`: идентификация варианта Dynamo, связанного с главным узлом.

`-s, -S, --SessionId`: определение идентификатора сеанса аналитики узла Dynamo.

`-p, -P, --ParentId`: определение родительского идентификатора аналитики узла Dynamo.

`-x, -X, --ConvertFile`: при использовании в сочетании с флагом `-O` открывает файл `.dyn` по указанному пути и преобразует его в файл `.json`. Файл будет иметь расширение `.json` и будет находиться в том же каталоге, что и исходный файл.

`-n, -N, --NoConsole`: взаимодействие с командной строкой в режиме Keepalive без использования окна консоли.

`-u, -U, --UserData`: указание папки данных пользователя, используемой PathResolver с командной строкой.

`--CommonData`: указание общей папки данных, используемой PathResolver с командной строкой.

`--DisableAnalytics`: отключение аналитики в Dynamo на время жизненного цикла процесса.

`--CERLocation`: указание инструмента для создания отчетов об ошибках, находящегося на диске.

`--ServiceMode`: указание запуска режима обслуживания.

#### Для чего?

Управлять Dynamo из командной строки можно по разным причинам, включая следующие:

* автоматизация нескольких запусков Dynamo;
* тестирование графов Dynamo (также обратите внимание на -c при использовании DynamoSandbox);
* запуск последовательности графов Dynamo в определенном порядке;
* создание пакетных файлов, которые используются для запуска нескольких экземпляров командной строки;
* написание другой программы для автоматизации выполнения графов Dynamo и управления ими, а также для выполнения интересных операций с результатами этих вычислений.

#### Что?

Интерфейс командной строки (DynamoCLI) — это дополнение к DynamoSandbox. Данная утилита командной строки DOS/терминала предназначена для обеспечения удобства использования аргументов командной строки для запуска Dynamo. В первой реализации интерфейс не запускается автономно, его необходимо запускать из папки, в которой находятся двоичные файлы Dynamo, поскольку он зависит от тех же основных библиотек DLL, что и Sandbox. Интерфейс не взаимодействует с другими сборками Dynamo.

Существует четыре способа запуска интерфейса командной строки (CLI): из командной строки DOS, из пакетных файлов DOS и с помощью ярлыка на рабочем столе Windows, в путь которого включены соответствующие флаги командной строки. Спецификация файла DOS может быть полностью квалифицированной или относительной, поддерживаются подключенные диски и синтаксис URL-адресов. Его также можно создать с помощью Mono и запускать на Linux или Mac в окне терминала.

Утилита поддерживает пакеты Dynamo, однако загрузить пользовательские узлы (DYF) не удастся; можно загрузить только автономные графы (DYN).

На этапе предварительного тестирования утилита интерфейса командной строки поддерживает локализованные версии Windows, и вы можете указывать аргументы спецификации файла с помощью символов ASCII в верхнем регистре.

Доступ к CLI можно получить через приложение DynamoCLI.exe. Это приложение позволяет пользователю или другому приложению взаимодействовать с моделью оценки Dynamo путем вызова DynamoCLI.exe в командной строке. Результат может выглядеть следующим образом:

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn"`

Эта команда предписывает Dynamo открыть указанный файл в папке *C:\someReallyCoolDynamoFile.Dyn* без отображения пользовательского интерфейса, а затем запустить его. После завершения выполнения графа приложение Dynamo закрывается.

**Новые возможности версии 2.1**: приложение DynamoWPFCLI.exe. Это приложение поддерживает все, что поддерживается приложением DynamoCLI.exe с добавлением параметра «Геометрия» (-g). Приложение DynamoWPFCLI.exe доступно только для Windows.

#### Важные примечания

* Предпочтительным способом взаимодействия с DynamoCLI является интерфейс командной строки.
* На этот раз необходимо запустить DynamoCLI из папки установки \[Версия Dynamo]. Интерфейсу CLI требуется доступ к тем же файлам DLL, что и программе Dynamo, поэтому его не следует перемещать.
* Вы сможете запускать графы, которые в данный момент открыты в Dynamo, но это может вызвать непредвиденное поведение.
* Все пути к файлам полностью совместимы с DOS, поэтому относительные и полные пути должны работать, но обязательно заключайте пути в прямые кавычки *"C:path\to\file.dyn"*.
* DynamoCLI — это новая функция, которая в настоящее время находится в процессе доработки. В настоящее время **CLI загружает только подмножество** стандартных библиотек Dynamo. Обратите на это внимание, если граф выполняется неправильно. Эти библиотеки указаны [здесь](https://github.com/DynamoDS/Dynamo/blob/master/src/DynamoApplications/PathResolvers.cs#L28).
* В настоящее время вывод STD не предусмотрен. Если ошибок не обнаружено, интерфейс CLI просто закрывается по завершении выполнения.

#### Как?

`-o` — можно указать на файл DYN, чтобы открыть Dynamo в режиме без графического пользовательского интерфейса, в котором будет запущен граф.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn"`

`-v` — этот флаг можно использовать, когда Dynamo работает в режиме без графического пользовательского интерфейса (когда мы использовали флаг `-o` для открытия файла); данный флаг будет перебирать все узлы в графе и выводить их выходные значения в простой файл XML. Поскольку флаг `--ServiceMode` можно использовать для принудительного выполнения программой Dynamo нескольких оценок графа, выходной файл будет содержать значения для каждого выполненного вычисления.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -p "C:\aFileWithPresetsInIt.dyn" --ServiceMode "all" -v "C:\output.xml"`

Выходной файл XML будет иметь следующий вид:

```xml
    <evaluations>
        <evaluation0>
            <Node guid="e2a6a828-19cb-40ab-b36c-cde2ebab1ed3">
                <output0 value="str" />
            </Node>
            <Node guid="67139026-e3a5-445c-8ba5-8a28be5d1be0">
                <output0 value="C:\Users\Dale\state1.txt" />
            </Node>
            <Node guid="579ebcb8-dc60-4faa-8fd0-cb361443ed94">
                <output0 value="null" />
            </Node>
        </evaluation0>
        <evaluation1>
            <Node guid="e2a6a828-19cb-40ab-b36c-cde2ebab1ed3">
                <output0 value="str" />
            </Node>
            <Node guid="67139026-e3a5-445c-8ba5-8a28be5d1be0">
                <output0 value="C:\Users\Dale\state2.txt" />
            </Node>
            <Node guid="579ebcb8-dc60-4faa-8fd0-cb361443ed94">
                <output0 value="null" />
            </Node>
        </evaluation1>
    </evaluations>
```

`-g` — этот флаг можно использовать, когда Dynamo работает в режиме без графического пользовательского интерфейса (когда мы использовали флаг `-o` для открытия файла); данный флаг будет генерировать граф и выводить результирующую геометрию в файл JSON.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoWPFCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -g "C:\geometry.json"`

Файл геометрии JSON будет иметь следующий вид:

Подлежит уточнению — находится в разработке

`-h` — используйте этот флаг для получения списка возможных параметров.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -h`

Флаг -i можно использовать несколько раз для импорта нескольких сборок, которые требуются для запуска открываемого графа.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -i"a.dll" -i"aSecond.dll"`

Флаг -l можно использовать для запуска Dynamo с другими региональными настройками. Однако обычно региональные настройки не влияют на результаты графа.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -l "de-DE"`

Флаг --GeometryPath можно использовать, чтобы указать среде DynamoSandbox или интерфейсу CLI на определенный набор двоичных файлов ASM. Используйте его следующим образом.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoSandbox.exe --GeometryPath "\pathToGeometryBinaries\"`

или

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoSandbox.exe --GeometryPath "\pathToGeometryBinaries\"`

Флаг -k можно использовать, чтобы не завершать запущенный процесс Dynamo до тех пор, пока загруженное расширение не завершит его.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -k`

Флаг --HostName можно использовать для идентификации варианта Dynamo, связанного с главным узлом.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe --HostName "DynamoFormIt"`

или

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoSandbox.exe --HostName "DynamoFormIt"`

Флаг -s можно использовать для идентификации сеанса аналитики узла Dynamo.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -s [HostSessionId]`

Флаг -p можно использовать для идентификации родительского идентификатора аналитики узла Dynamo.

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -p "RVT&2022&MUI64&22.0.2.392"`


---

# 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/1_developer_primer_intro/3_developing_for_dynamo/10-command-line-interface.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.
