В предыдущей статье мы разбирали как создать кнопку типа .pushbutton
но на этом функционал Revit и pyRevit не заканчивается.
Давайте посмотрим что они еще могут.
Выпадающий список и стак (.pulldown и .stack)
Стак выглядит так:
Выпадающий список выглядит так:
Для этого в папке “МояВкладка.tab” создадим папку "МояПанель2.panel"
В нее поместим папку с именем "Стак1.stack"
А в нее поместим “Стаковая кнопка 1.pulldown”
Внутри папки .pulldown расположим 3 папки с расширением .pushbutton (в .pushbutton закидываем script.py и icon.png )
После чего раскопируем .pulldown 2 раза поменяв названия.
Должна получится такая структура:
-МояВкладка.tab
—МояПанель2.panel
—-Стак1.stack
——Стаковая кнопка 1.pulldown
——Стаковая кнопка 2.pulldown
——Стаковая кнопка 3.pulldown
——-Кнопка1.pushbutton
———script.py
———icon.png
——-Кнопка2.pushbutton
——-Кнопка3.pushbutton
——-icon.png
Перезапускаем панель нажав “Обновить” и вауля:
Попробую еще раз но другими слова для закрепления.
Сначала мы создали .stack сказав паю что надо расплогать все что будет внутри друг под другом - типа таблицей. Максимальная высота стака - 3.
А "таблица" состоин из выпадающих списков, и что бы пай понял, что это "выпадающий" мы задаем в имени папки на конце .pulldown
В основном я пользуюсь только 3 типа кнопок.
- stack
- puldown
- pushbutton
и просто по разному комбинирую их.
Сортировка
Смоделируем ситуацию: сделали мы кнопку .pulldown и туда поместили кучу .pushbutton
Пай отсортирует этот список кнопок по альфавиту, но что делать, если нам нужна другая последовательность?
Для упорядочивания нам потребует еще один файлик - bundle.yaml
- Создать файл bundle.yaml
- Расположить его в папку, в которой надо задать сортировку кнопок
3. Открываем файл bundle.yaml и задаем нужную сортировку указав специальное слово "layout:"
После перезапуска кнопки отсортирубтся согласно порядку в данном файле.
Что еще может bundle.yaml
В него можно вписывать еще кое-какие специальные слова:
highlight: updated или highlight: new
Это добавить такой эффект к кнопке
title: Имя кнопке, еще один способ задать имя кнопке
tooltip: Описание кнопке
layout: Порядок кнопок
author: Указать автора
min_revit_version: 2017- Минимальная версия, на которой будет отображаться эта кнопка
max_revit_version: 2025 -Максимальная версия ревита, на которой будет отображаться эта кнопка
context: zero-doc - Позволит использовать скрипт без открытых моделей
context:
- Walls
- Window
А такая запись позволит использовать искрипт только если выделины стены или окна (можно указывать несколько категорий)
helpurl: "https: ССЫЛКА" - позволит при наведение на кнопку и наждатие F1 открыть указанную ссылку
Больше об этом читаем тут:
Интересно
В pushbutton можно помещать не только IronPython скрипт, но и CPython, DynamoBIM, Grasshopper и даже С#, VB.NET
А какие еще могут быть кнопки?
- Самый удобный способ узнать какие еще есть кнопки это вернуться на панель pyRevit и посмотреть там.
Скажем понравилась вам кнопка с выпадающим списком зажимаем ALT и кликаем по кнопке - откроется папка, в которой расположен данный скрипт, и по ее наименованию/структуре становится понятно, что это кнопка .pulldown Таким образом можно изучать возможности pyRevit и смотреть чужой код,
2. Изучать документацию тут, а здесь лишь перечислю их:
- smartbutton
- nobutton
- splitpushbutton
- splitbutton
- .urlbutton
Заключение
Спасибо за внимание.
Подписывайтесь пожалуйста на этот дзен и тг: