# 1.6. Типы кнопок

[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/2Bsimage.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/2Bsimage.png)

<span class="p1 pcustom">В [предыдущей статье](https://wiki.marksdigital.ru/books/pyrevit/page/13-pervaia-knopka) мы разбирали как создать кнопку типа <span class="low_highlighting_custom p1 highlighting">.pushbutton</span>, но на этом функционал Revit и pyRevit не заканчивается.</span>

<span class="p1 pcustom">Давайте посмотрим, что они еще могут.</span>

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

<span class="p1 pcustom">Стак выглядит так:</span>

<span class="p1 pcustom">[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/Yo8image.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/Yo8image.png)</span>

<span class="p1 pcustom">Выпадающий список выглядит так:</span>

<span class="p1 pcustom">![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/2XRimage.png)</span>

<span class="p1 pcustom">Для этого в папке “<span class="low_highlighting_custom p1 highlighting">МояВкладка.tab</span>” создадим папку "<span class="low_highlighting_custom p1 highlighting">МояПанель2.panel</span>"</span>

<span class="p1 pcustom">[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/uFHimage.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/uFHimage.png)</span>

<span class="p1 pcustom">В нее поместим папку с именем "<span class="low_highlighting_custom p1 highlighting">Стак1.stack</span>"</span>

<span class="p1 pcustom">[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/n1Nimage.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/n1Nimage.png)</span>

<span class="p1 pcustom">А в нее поместим “<span class="low_highlighting_custom p1 highlighting">Стаковая кнопка 1.pulldown</span>”</span>

<span class="p1 pcustom">[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/Nd6image.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/Nd6image.png)</span>

<span class="p1 pcustom">Внутри папки <span class="low_highlighting_custom p1 highlighting">.pulldown</span> расположим 3 папки с расширением <span class="low_highlighting_custom p1 highlighting">.pushbutton</span> (в <span class="low_highlighting_custom p1 highlighting">.pushbutton</span> закидываем <span class="low_highlighting_custom p1 highlighting">script.py</span> и <span class="low_highlighting_custom p1 highlighting">icon.png</span> )</span>

[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/ojJimage.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/ojJimage.png)

<span class="p1 pcustom">После чего скопируем <span class="low_highlighting_custom p1 highlighting">.pulldown</span> 2 раза поменяв названия.</span>

[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/PQqimage.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/PQqimage.png)

<span class="p1 pcustom">Должна получится такая структура:</span>

<span class="p1 pcustom">- МояВкладка.tab</span>

<span class="p1 pcustom">- МояПанель2.panel</span>

<span class="p1 pcustom">- Стак1.stack</span>

<span class="p1 pcustom">- Стаковая кнопка 1.pulldown</span>

<span class="p1 pcustom">- Стаковая кнопка 2.pulldown</span>

<span class="p1 pcustom">- Стаковая кнопка 3.pulldown</span>

<span class="p1 pcustom">- Кнопка1.pushbutton</span>

<span class="p1 pcustom">- script.py</span>

<span class="p1 pcustom">- icon.png</span>

<span class="p1 pcustom">- Кнопка2.pushbutton</span>

<span class="p1 pcustom">- Кнопка3.pushbutton</span>

<span class="p1 pcustom">- icon.png</span>

<span class="p1 pcustom">Перезапускаем панель нажав “<span class="low_highlighting_custom p1 highlighting">Обновить</span>” и вауля:</span>

[![image.png](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/scaled-1680-/HERimage.png)](https://wiki.marksdigital.ru/uploads/images/gallery/2024-10/HERimage.png)

<span class="p1 pcustom">Попробую еще раз но другими слова для закрепления.</span>

---

<span class="p1 pcustom">Сначала мы создали .stack сказав паю что надо расплагать все что будет внутри друг под другом - типа таблицей. Максимальная высота стака - 3.</span>

<span class="p1 pcustom">А "таблица" состоин из выпадающих списков, и что бы пай понял, что это "выпадающий" мы задаем в имени папки на конце .pulldown</span>

<span class="p1 pcustom">В основном я пользуюсь только 3 типа кнопок:</span>

- <span class="p1 pcustom">stack</span>
- <span class="p1 pcustom">puldown</span>
- <span class="p1 pcustom">pushbutton</span>

<span class="p1 pcustom">и просто по разному комбинирую их.</span>

---

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

<span class="p1 pcustom">Вообще, вы могли заметить, что по сути тип кнопки не поменялся, как был pushbutton так и остался. Поменялась структура, в которой расположена кнопка. Но в пай действительно можно создать другой тип кнопки. Описывать подробно в рамках статей я не буду, но дам затравку:</span>

- <span class="p1 pcustom">.smartbutton</span>
- <span class="p1 pcustom">.nobutton</span>
- <span class="p1 pcustom">.splitpushbutton</span>
- <span class="p1 pcustom">.splitbutton</span>
- <span class="p1 pcustom">.urlbutton</span>

<span class="p1 pcustom">подробнее [тут](https://pyrevitlabs.notion.site/Developer-Docs-2c88f3ecccde422d9504e20b6b9e04f8)</span>