Run Python запускает Python-скрипт из BIMO внутри активной сессии Revit. Команда подходит для быстрых проверок, небольших автоматизаций и повторяемых сценариев, которые удобно хранить как preset BIMO.
Внимание: Python-скрипт может изменить модель Revit. Скрипты, которые меняют модель, сначала проверяйте на копии или тестовом файле.
Перед Запуском
Откройте нужный проект или семейство Revit.
Проверьте, что скрипт рассчитан на активный документ.
Если скрипт меняет модель, он должен сам открыть и завершить Revit transaction.
Настройки Команды
Настройка | Что Делает |
|---|---|
| Выбирает способ запуска: |
| Необязательный путь к |
| Python-код прямо в настройках команды. Если поле не пустое, BIMO запускает его вместо |
| Список текстовых входных значений, переданных в скрипт. |
Как Выбрать Engine
Используйте IronPython, если скрипту нужен прямой доступ к активному документу Revit через переменные BIMO: __doc__, __uidoc__ или __uiapp__.
Используйте Dynamo_CPython3 для скриптов в стиле Python node из Dynamo, где входные данные читаются из IN, а результат возвращается через OUT.
Внимание:
Dynamo_CPython3не предоставляет переменные__doc__,__uidoc__,__revit__и__uiapp__. Если открыт интерфейс Dynamo, BIMO может попросить закрыть его перед запуском скрипта.
Что Доступно В Скрипте
Значение | Где Доступно | Что Означает |
|---|---|---|
|
| Текстовые входные значения из настроек команды. |
|
| Результат, который BIMO покажет после выполнения. Для предсказуемого вывода возвращайте текст. |
|
| Активный Revit |
|
| Активный Revit |
|
| Контекст активного приложения Revit. |
|
| Текущий объект выбора 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 |
|---|---|---|
| Скрипт проверки активного вида. |
|
| Скрипт заполнения параметров и нужные значения |
|
| Путь к |
|
После назначения preset на Variant #1, Variant #2 или Variant #3 соответствующий пункт появляется в выпадающем списке под кнопкой Run Python. Такой variant является отдельным пунктом команды в Ribbon, поэтому ему можно назначить горячую клавишу средствами Revit Keyboard Shortcuts.
Рекомендуемый сценарий:
Создайте отдельный preset для каждого Python-сценария.
Назовите preset по действию, например
Check Active ViewилиExport Rooms.Назначьте часто используемые presets на
Variant #1..#3.Назначьте горячие клавиши нужным variant-пунктам в Revit.
Внимание: shortcut запускает выбранный variant сразу. Если скрипт меняет модель, сначала проверьте preset, активный документ и сам скрипт на копии проекта.
Подробнее о настройке variants см. в Presets и Variants.
Ошибки И Диагностика
Проблема | Что Проверить |
|---|---|
Файл не читается | Проверьте путь |
Результат не отображается | Верните текст через |
Скрипт падает с ошибкой | BIMO покажет детали ошибки и позволит скопировать их. Проверьте скрипт и повторите запуск. |
| Закройте интерфейс Dynamo, если он открыт, или используйте |
Известные Ограничения
Scriptимеет приоритет надScript file.Значения
INпередаются как текстовые строки.BIMO не создаёт transaction вокруг Python-кода.
Revit-переменные вроде
__doc__и__uidoc__доступны только вIronPython.Для предсказуемого отображения результата возвращайте текст через
OUT.Для быстрого запуска через горячие клавиши используйте variants, назначенные на presets.