Коротко
- Компонент Python 3 Script можно добавить через панель `Script` на вкладке `Maths` в Grasshopper.
- Для входных параметров доступны варианты доступа Item, List и Tree.
- Type Hint может преобразовать входные данные в выбранный тип до запуска скрипта.
- Отключение неиспользуемого стандартного выходного параметра может сократить ненужную обработку, особенно в определениях с большим количеством компонентов.
Руководство основано на описании написания Python-скриптов для Grasshopper в документации для разработчиков Rhino, обновлённой 29 сентября 2026 года. В Grasshopper можно добавить компонент Python 3 или IronPython 2 Script; в общем компоненте Script также можно выбрать Python 3 в меню языков. Ниже приведены шаги, которые помогут правильно настроить входы, доступ к данным и выходы компонента до создания геометрии. В документации отдельно отмечено, что некоторые параметры зависят от версии Rhino: например, возможность сделать входной параметр обязательным доступна начиная с Rhino 8.14.
1. Добавьте компонент Script и задайте ему имя
Добавьте компонент Python 3 Script на холст Grasshopper через панель Script на вкладке Maths. В качестве альтернативы можно разместить общий компонент Script и выбрать Python 3 в меню языков. Двойной щелчок по компоненту открывает редактор скриптов; версия используемого языка Python отображается в строке состояния редактора.
Скрипты обычно встроены в компонент и не сохраняются как отдельные файлы. Если в определении несколько скриптов, переименуйте компонент так, чтобы его название отражало назначение. Это имя будет отображаться на вкладке Script и в панели точек останова. Также задайте входным и выходным параметрам понятные имена: так другим пользователям будет проще понять, какие данные требуются и что создаёт компонент.
2. Настройте первый скрипт с входами и выходами
По умолчанию компонент Script содержит входы x и y, а также выходы out и a. Ненужные параметры можно удалить. Элементы управления для добавления и удаления входов и выходов становятся видны, если достаточно приблизить компонент. Также можно удалить все параметры с одной стороны — компонент отобразит этот край иначе.
Для простого примера сложите два числа и передайте результат на выход a:
a = x + yВ Script-Mode компонент определяет входные переменные до запуска скрипта; значения, присвоенные выходным переменным, передаются на выходы компонента. В этом примере к входам x и y нужно подключить совместимые значения. Если входы пусты, их значениями могут быть None, и сложение этих двух значений вызовет ошибку во время выполнения. Поскольку Python не является языком со строгой типизацией, несовместимые операции могут приводить к ошибкам при запуске скрипта.
3. Выберите тип входа и способ доступа к данным
Если задать Type Hint, щёлкнув правой кнопкой мыши по входному параметру, данные, поступающие в компонент, будут преобразованы до запуска скрипта. В приведённом в документации примере два значения Line преобразуются в числовые значения с помощью подсказки типа float, после чего скрипт складывает их. Параметр Type Hint доступен и для входных, и для выходных параметров. Проверьте подключённые данные, чтобы убедиться, что преобразование даёт ожидаемый результат.
Параметр Parameter Access в меню параметра определяет, в каком объёме скрипт будет обрабатывать данные:
| Доступ | Структура данных, передаваемая скрипту | Когда использовать? |
|---|---|---|
| Item | Каждый элемент данных обрабатывается отдельно | Для обработки элементов по одному |
| List | Элементы одной ветви обрабатываются вместе | Для совместной обработки списка из одной ветви |
| Tree | Вся структура данных обрабатывается целиком | Для работы со всеми ветвями и элементами одновременно |
При доступе Item число представлено на стороне Python одним значением, а при доступе List значения одной ветви представлены списком. При доступе Tree скрипт получает доступ к дереву данных Grasshopper. Подсказка типа также может помочь определить тип элементов в общей структуре DataTree. Прежде чем выбирать способ доступа, определите, будет ли скрипт обрабатывать один элемент, список или всё дерево.
4. Настройте выходы и обязательные входы
Параметр out перехватывает текст, который скрипт выводит с помощью вызовов print(). По умолчанию каждая строка становится отдельным элементом выхода. Если включить параметр Avoid Grafting Output Lines, напечатанные строки будут передаваться одним элементом. Если скрипт ничего не выводит в консоль, параметр out можно отключить с помощью пункта Standard Output/Error Parameter в контекстном меню компонента.
Отключение неиспользуемого параметра out не позволяет компоненту перехватывать и обрабатывать выводимый текст. В документации отмечается, что выигрыш от этого шага для одного компонента может быть небольшим, но настройка способна оказаться полезнее в крупных определениях Grasshopper, где множество компонентов выполняются тысячи раз.
Изначально входы скрипта необязательны. Если вход обязательно должен содержать данные, можно выбрать Required в контекстном меню входного параметра. Согласно официальной документации, эта настройка доступна начиная с Rhino 8.14. Особенно перед публикацией скрипта полезно отметить обязательные входы — это снижает риск запуска без необходимых данных.
Применение в рабочих процессах архитектуры и визуализации
Для архитекторов, дизайнеров интерьеров и специалистов по визуализации эти настройки помогают создавать более понятные определения Grasshopper для повторяющихся задач моделирования. Например, названия параметров, показывающие, какие данные нужны скрипту, и заданный тип входа упрощают передачу определения коллегам. Выбор Item, List или Tree также определяет, будет ли операция применяться к отдельным элементам или к группе данных.
Для работы со сложной геометрией одного этого руководства недостаточно: источник не охватывает API Rhino и Grasshopper и отсылает за этой информацией к отдельной документации. Поэтому сначала проверьте процесс на простом скрипте и небольшом наборе данных, а затем переходите к рабочему определению. В этих источниках нет информации о требованиях к рабочей станции или лицензии, поэтому дополнительные рекомендации по оборудованию или расходам здесь не приводятся.
Частые ошибки
Не учитывать пустые входы и выполнять операции над значениями
None: проверяйте, подключены ли входы и соответствуют ли данные ожидаемому типу.Не выбирать способ доступа к параметру с учётом потребностей скрипта: Item, List и Tree обеспечивают работу с разными структурами данных.
Оставлять включённым неиспользуемый параметр
out: если выводprint()не нужен, параметр можно отключить.Давать параметрам неинформативные имена: особенно в общих определениях это затрудняет понимание назначения входов и выходов.
Источники
Источников: 1Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Главная ценность рекомендаций из этой документации для архитектурных бюро и студий визуализации в Турции — не в модернизации оборудования, а в том, что определения Grasshopper становятся надёжнее и удобнее для передачи коллегам. Понятные имена параметров, корректный доступ к данным и указание обязательных входов могут сэкономить время, особенно когда одним определением пользуются разные члены команды.
Эффект от отключения параметра `out` в одном компоненте может быть ограниченным, однако в определениях с большим количеством интенсивно работающих компонентов это потенциально сокращает ненужную обработку. Важно проверять изменения в реальном рабочем процессе и учитывать, что некоторые параметры зависят от версии Rhino. В источниках нет сведений об оборудовании, ценах или лицензиях, поэтому для принятия решений по этим вопросам понадобятся дополнительные официальные материалы.
Частые вопросы
Как добавить компонент Python 3 Script в Grasshopper?
Компонент Python 3 Script можно добавить через панель `Script` на вкладке `Maths` в Grasshopper. Если используется общий компонент Script, выберите Python 3 в меню языков.
Что означают варианты доступа Item, List и Tree в Grasshopper Python?
Item обрабатывает элементы по одному, List — вместе элементы одной ветви, а Tree — всю структуру данных. Выбор зависит от того, как скрипт должен работать с данными.
Для чего нужен параметр out в компоненте Grasshopper Python?
`out` перехватывает текст, выводимый в скрипте с помощью `print()`. Если вывод в консоль не нужен, параметр можно отключить в контекстном меню компонента.



