Run Python

Инструкция по запуску Python-скриптов в активной сессии Revit с presets, входными данными и мерами безопасности.

Run Python запускает Python-скрипт из BIMO внутри активной сессии Revit. Команда подходит для быстрых проверок, небольших автоматизаций и повторяемых сценариев, которые удобно хранить как preset BIMO.

Внимание: Python-скрипт может изменить модель Revit. Скрипты, которые меняют модель, сначала проверяйте на копии или тестовом файле.

Перед Запуском

  • Откройте нужный проект или семейство Revit.

  • Проверьте, что скрипт рассчитан на активный документ.

  • Если скрипт меняет модель, он должен сам открыть и завершить Revit transaction.

Настройки Команды

Настройка

Что Делает

Execution Engine

Выбирает способ запуска: IronPython или Dynamo_CPython3.

Script file

Необязательный путь к .py файлу. BIMO читает этот файл только если поле Script пустое.

Script

Python-код прямо в настройках команды. Если поле не пустое, BIMO запускает его вместо Script file.

IN

Список текстовых входных значений, переданных в скрипт.

Как Выбрать Engine

Используйте IronPython, если скрипту нужен прямой доступ к активному документу Revit через переменные BIMO: __doc__, __uidoc__ или __uiapp__.

Используйте Dynamo_CPython3 для скриптов в стиле Python node из Dynamo, где входные данные читаются из IN, а результат возвращается через OUT.

Внимание: Dynamo_CPython3 не предоставляет переменные __doc__, __uidoc__, __revit__ и __uiapp__. Если открыт интерфейс Dynamo, BIMO может попросить закрыть его перед запуском скрипта.

Что Доступно В Скрипте

Значение

Где Доступно

Что Означает

IN

IronPython, Dynamo_CPython3

Текстовые входные значения из настроек команды.

OUT

IronPython, Dynamo_CPython3

Результат, который BIMO покажет после выполнения. Для предсказуемого вывода возвращайте текст.

__doc__

IronPython

Активный Revit Document.

__uidoc__

IronPython

Активный Revit UIDocument.

__revit__, __uiapp__

IronPython

Контекст активного приложения Revit.

__selection__

IronPython

Текущий объект выбора Revit.

Как Вернуть Результат

Рекомендуемый способ показать результат - записать текст в OUT.

В IronPython также может отображаться вывод print(), если OUT не задан.

Пример: Показать Имя Активного Документа

Engine: IronPython

Этот пример только читает информацию и не меняет модель.

Пример: Использовать Входные Значения

Добавьте одно значение в IN, например заметку или префикс, затем запустите:

Значения IN передаются как текстовые строки.

Пример: Безопасно Изменить Модель

Внимание: этот пример открывает Revit transaction и может изменить активную модель. Используйте такой подход только когда понимаете, что именно меняет скрипт.

BIMO не открывает transaction вокруг пользовательского Python-кода автоматически.

Где Хранить Скрипты

Код можно хранить прямо в настройке Script или в любом .py файле, указав путь в Script file.

BIMO не копирует .py файлы в отдельную библиотеку скриптов. Если используете Script file, держите файл в стабильном месте, доступном для Revit.

Presets, Variants И Горячие Клавиши

Run Python поддерживает presets BIMO. В отдельном preset можно сохранить свой набор настроек команды:

  • Execution Engine;

  • Script или путь Script file;

  • значения IN.

Это удобно, когда нужно держать несколько Python-сценариев под рукой. Например:

Preset

Что Хранит

Variant

Check Active View

Скрипт проверки активного вида.

Variant #1

Fill Parameters

Скрипт заполнения параметров и нужные значения IN.

Variant #2

Export Data

Путь к .py файлу для выгрузки данных.

Variant #3

После назначения preset на Variant #1, Variant #2 или Variant #3 соответствующий пункт появляется в выпадающем списке под кнопкой Run Python. Такой variant является отдельным пунктом команды в Ribbon, поэтому ему можно назначить горячую клавишу средствами Revit Keyboard Shortcuts.

Рекомендуемый сценарий:

  1. Создайте отдельный preset для каждого Python-сценария.

  2. Назовите preset по действию, например Check Active View или Export Rooms.

  3. Назначьте часто используемые presets на Variant #1..#3.

  4. Назначьте горячие клавиши нужным variant-пунктам в Revit.

Внимание: shortcut запускает выбранный variant сразу. Если скрипт меняет модель, сначала проверьте preset, активный документ и сам скрипт на копии проекта.

Подробнее о настройке variants см. в Presets и Variants.

Ошибки И Диагностика

Проблема

Что Проверить

Файл не читается

Проверьте путь Script file и доступ к файлу.

Результат не отображается

Верните текст через OUT или используйте print() в IronPython. Пустой вывод не показывается.

Скрипт падает с ошибкой

BIMO покажет детали ошибки и позволит скопировать их. Проверьте скрипт и повторите запуск.

Dynamo_CPython3 не запускается

Закройте интерфейс Dynamo, если он открыт, или используйте IronPython для скриптов, которым нужны Revit-переменные BIMO.

Известные Ограничения

  • Script имеет приоритет над Script file.

  • Значения IN передаются как текстовые строки.

  • BIMO не создаёт transaction вокруг Python-кода.

  • Revit-переменные вроде __doc__ и __uidoc__ доступны только в IronPython.

  • Для предсказуемого отображения результата возвращайте текст через OUT.

  • Для быстрого запуска через горячие клавиши используйте variants, назначенные на presets.

An error has occurred. This app may no longer respond until reloaded. Reload 🗙