Найти в Дзене

pyRevit. Какие еще бывают кнопки в Revit

Оглавление

В предыдущей статье мы разбирали как создать кнопку типа .pushbutton

но на этом функционал Revit и pyRevit не заканчивается.

Давайте посмотрим что они еще могут.

Выпадающий список и стак (.pulldown и .stack)

Стак выглядит так:

-2

Выпадающий список выглядит так:

-3

Для этого в папке “МояВкладка.tab” создадим папку "МояПанель2.panel"

-4

В нее поместим папку с именем "Стак1.stack"

-5

А в нее поместим “Стаковая кнопка 1.pulldown”

-6

Внутри папки .pulldown расположим 3 папки с расширением .pushbutton.pushbutton закидываем script.py и icon.png )

-7

После чего раскопируем .pulldown 2 раза поменяв названия.

-8

Должна получится такая структура:

-МояВкладка.tab

—МояПанель2.panel

—-Стак1.stack

——Стаковая кнопка 1.pulldown

——Стаковая кнопка 2.pulldown

——Стаковая кнопка 3.pulldown

——-Кнопка1.pushbutton

———script.py

———icon.png

——-Кнопка2.pushbutton

——-Кнопка3.pushbutton

——-icon.png

Перезапускаем панель нажав “Обновить” и вауля:

-9

Попробую еще раз но другими слова для закрепления.

Сначала мы создали .stack сказав паю что надо расплогать все что будет внутри друг под другом - типа таблицей. Максимальная высота стака - 3.

А "таблица" состоин из выпадающих списков, и что бы пай понял, что это "выпадающий" мы задаем в имени папки на конце .pulldown

В основном я пользуюсь только 3 типа кнопок.
- stack
- puldown
- pushbutton
и просто по разному комбинирую их.

Сортировка

Смоделируем ситуацию: сделали мы кнопку .pulldown и туда поместили кучу .pushbutton

-10

Пай отсортирует этот список кнопок по альфавиту, но что делать, если нам нужна другая последовательность?

Для упорядочивания нам потребует еще один файлик - bundle.yaml

  1. Создать файл bundle.yaml
  2. Расположить его в папку, в которой надо задать сортировку кнопок
-11

3. Открываем файл bundle.yaml и задаем нужную сортировку указав специальное слово "layout:"

-12

После перезапуска кнопки отсортирубтся согласно порядку в данном файле.

Что еще может bundle.yaml

В него можно вписывать еще кое-какие специальные слова:

highlight: updated или highlight: new

Это добавить такой эффект к кнопке

-13

title: Имя кнопке, еще один способ задать имя кнопке

tooltip: Описание кнопке

layout: Порядок кнопок

author: Указать автора

min_revit_version: 2017- Минимальная версия, на которой будет отображаться эта кнопка

max_revit_version: 2025 -Максимальная версия ревита, на которой будет отображаться эта кнопка

context: zero-doc - Позволит использовать скрипт без открытых моделей

context:
- Walls
- Window

А такая запись позволит использовать искрипт только если выделины стены или окна (можно указывать несколько категорий)
helpurl: "https: ССЫЛКА" - позволит при наведение на кнопку и наждатие F1 открыть указанную ссылку

Больше об этом читаем тут:

Bundle Metadata | Notion

Интересно

В pushbutton можно помещать не только IronPython скрипт, но и CPython, DynamoBIM, Grasshopper и даже С#, VB.NET

А какие еще могут быть кнопки?

  1. Самый удобный способ узнать какие еще есть кнопки это вернуться на панель pyRevit и посмотреть там.

Скажем понравилась вам кнопка с выпадающим списком зажимаем ALT и кликаем по кнопке - откроется папка, в которой расположен данный скрипт, и по ее наименованию/структуре становится понятно, что это кнопка .pulldown Таким образом можно изучать возможности pyRevit и смотреть чужой код,

2. Изучать документацию тут, а здесь лишь перечислю их:

  • smartbutton
  • nobutton
  • splitpushbutton
  • splitbutton
  • .urlbutton

Заключение

Спасибо за внимание.

Подписывайтесь пожалуйста на этот дзен и тг:

pyRevit | BIM. Илья Нистратов