EN
creator cover RuBIM.tech

RuBIM.tech

Автоматизация Revit на Python, Dynamo&pyRevit.
RuBIM.tech
14
subscribers
goals
0 of 100 paid subscribers
Как только наберется более 100 подписчиков, я пойму что эта тематика интересна и появится стимул публиковать больше статей.

About the creator

Блог ориентирован на тех кто хочет научится писать автоматизацию для Revit используя возможности языка програмирования Рython. 

Знакомство с Revit API, Методы получения элементов. часть 2

Ранее мы познакомились с конструктором класса FilteredElementCollector, подробно останавливаться на нём не будет, это тема отдельной статьи, а рассмотрим следующий вариант, когда пользователь выбрал элементы и нам надо с ними уже провзаимодействовать.
Для это нам понадобится обратится к классу Selection к его методу GetElementIds
Selection - это класс представляющий собой объект, который позволяет взаимодействовать с выбранными элементами в пользовательском интерфейсе Revit. Он предоставляет информацию о том, какие элементы выбраны пользователем, и позволяет выполнять различные операции с этими выбранными элементами.
GetElementIds() - метод для получения ElementId выбранных элементов в виде списка.
Класс находится в пространстве имен Autodesk.Revit.UI, то необходимо вначале обратиться к ActiveUIDocument, а после к Selection 
строчка кода для получения списка ElementId будет выглядеть следующим образом:
Но так лучше не писать, во первых это долго читать, во вторых если еще раз ниже по коду придется обращается к ActiveUIDocument, то и писать тоже долго.
Так гораздо лучше. Что мы тут видим? А видим то что имя uidoc ссылается на объект ActiveUIDocument, можно также сказать что переменная uidoc содержит в себе объект ActiveUIDocument.
Show more

Знакомство с Revit API, Методы получения элементов. часть 1

Для того чтобы начать взаимодействовать с элементами модели, нужно определится как именно нужно получить элементы. Попросить пользователя выбрать определенные элементы или пользователь сам должен в начале их выбрать, или вовсе не спрашивать пользователя получив нужные элементы.
Начнём с последнего варианта, получим сразу нужные элементы, для этого обратимся к классу FilteredElementCollector и увидим что у этого класса имеется конструктор.
А что такое этот FilteredElementCollector?
А это класс в API Autodesk Revit, который используется для выполнения запросов и фильтрации элементов в проекте Revit. Он позволяет выбирать элементы на основе различных критериев.
А что это такое Конструктор класса?
А это специальный метод в объектно-ориентированном программировании, который вызывается при создании нового объекта (экземпляра) класса. Конструктор класса определяет начальное состояние объекта и инициализирует его атрибуты (поля) значениями, переданными в момент создания объекта.
Когда разобрались что это вообще такое давайте посмотрим на конструкторы. Посмотрим на первых два и поймём в чем они отличаются
collector = FilteredElementCollector(Document) с этим всё понятно он требует для создания всего лишь документ и в этой статье как раз в примере этот коллектором и рассматривался.
Show more

Знакомство с Revit API и взаимодействие с ним через Python

Одной из его мощных функциональных возможностей Revit является его API (Application Programming Interface), который позволяет разработчикам создавать собственные плагины и скрипты для автоматизации задач и улучшения рабочего процесса в Revit. В этой статье мы рассмотрим, как начать работать с Revit API и взаимодействовать с ним, используя Python.
Что такое Revit API?
API Revit - это набор функций и классов, предоставляемых Autodesk для взаимодействия с Revit. Он позволяет получить доступ к данным модели Revi не только изменять и создавать элементы, но и многое другое. API позволяет автоматизировать широкий спектр задач, таких как создание чертежей, расчеты, анализ и управление элементами модели.
Как взаимодействовать?
Для того что бы получить возможность писать свои сценарии взаимодействия с Revit можно использовать следующие инструменты: pyRevit, RevitPythonShell, Dynamo. Для написания кода я использую VS Code, но можно использовать и другие инструменты, например PyCharm.
А как оно в Dynamo?
Для начало набросаем простой скрипт используя так называемое визуальное  программирование, который перенесет во всех трубах проекта значение параметра "Тип системы" в параметр "Комментарии".
Show more
Создание плагина на pyRevit. ч-3
Продолжим реализацию класса BreakMEPCurve реализуем разделение Труб и Воздуховодов на сегменты заданной длины.
Level required:
Читатель

Создание плагина на pyRevit. ч-2

Первая часть тут.
Давайте теперь определимся с логикой работы инструмента который нам будет разделять трубы и воздуховоды на заданные отрезки.
Я думаю что стоит создать текстовый параметр проекта и назначить на типы наших категорий. Пока будем использовать для теста параметр с именем "Размеры", а далее как реализуем основную логику дадим возможность пользователю выбрать необходимый параметр.
И так приступим к написанию кода.
Но прежде обратимся к документации по Revit API что бы понимать как получить выделенные элементы пользователем и найдем в ней нужный метод
Вначале займемся необходимыми импортами:
Show more

Создание плагина на pyRevit. ч-1

Давайте напишем наш первый инструмент для Revit. Создадим вкладку на панели инструментов, панель и первую кнопку.
В качестве примера попробуем реализовать разделение MEP
элементов на сегменты заданной длины, таких как, Трубы, Воздуховоды, Кабельные лотки и Короба. Но для начало ограничимся трубами и воздуховодами. 
Для того чтобы приступить к реализации этого проекта нужно в
начале создать следующею структуру папок/файлов:
 далее создадим следующие файлы bundle.yaml
Show more
Приму донаты в любом количестве.

Subscription levels

Читатель

$ 5,4 per month
Считаешь что контент полезен, подпишись и поддержи автора и сможешь читать больше статей.

Продвинутый читатель

$ 16 per month
С этим уровнем подписки уже можно будет читать полный цикл статей про разработку инструментов.

Нетерпеливый читатель

$ 32 per month
С этим уровнем вы раньше всех сможете читать ещё неопубликованные статьи для других подписчиков, а также будет доступен исходный код из статей.
...

Пытливый читатель

$ 54 per month
С этим уровнем сможете вступить в закрытый телеграмм чат.
Go up