top of page

Dynamo+Python 02

Обновлено: 21 авг. 2020 г.

Dynamo+Python.Revit API или «Что вообще с этим делать»

Настоятельно рекомендую перед начало прочесть «Dynamo +Python Введение»

Чтобы начать работу с Python Script нам первым делом нужно подключить библиотеки ревита


Вставляем вот этот блок в первые строчки.


import clr clr.AddReference("RevitNodes") import Revit clr.ImportExtensions(Revit.Elements) clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager doc = DocumentManager.Instance.CurrentDBDocument uidoc = DocumentManager.Instance.CurrentUIDocument clr.ImportExtensions(Revit.GeometryConversion) clr.AddReference("RevitAPI") import Autodesk from Autodesk.Revit.DB import *







на данном этапе разбирать подробности подгрузки библиотек не будем, по тому что на ранних этапах можно пользоваться шаблоном и не задумываться , где, что, и откуда берется.


После чего читаем 17 строку. rooms=UnwrapElement(IN[0]) эта конструкция позволяет Python распознать входящие элементы и после применять методы из Revit API Docs к объектам


19 строка- rooms_names=[] тут мы объявляем пустой список с именами.


22 строка for N in rooms: - запускаем цикл и помещаем каждое помещение из списка в переменную i


и вот тут начинается самое интересное.

param_name=N.LookupParameter("Имя").AsString()


вот эта часть «.LookupParameter("Имя").AsString()» это методы из Revit API Docs

ну и ссылка откуда растут ноги- https://www.revitapidocs.com/


Что это такое и с чем ее едят- Это методы взаимодействия Revit созданными разработчиками.


Сейчас меня раскритикуют за терминологию, но мы тут не программисты собрались а Архитекторы, Инженеры, BIM Менеджеры, по этому будем говорить на человеческом


.LookupParameter("Имя") – Это метод изъятия параметра из объекта

и ссылка где это лежит у разработчика https://www.revitapidocs.com/2019/4400b9f8-3787-0947-5113-2522ff5e5de2.htm


.AsString() – это метод в каком формате мы хотим его взять. (как строку, как число итд)


А теперь давайте разберемся что тут происходит, в переменной N у нас лежит помещение,


Далее мы вытаскиваем из этого помещения параметр с названием «Имя», но нам нужен не сам параметр, а его значение по этому мы тут же добавляем что нам этот параметр нужен .AsString()

В буквальном переводе, как строку.


И то что вернут эти два последовательных метода, запишется в переменную param_name


Далее rooms_names.append(param_name)

В список rooms_names c помощью метода .append() мы добавляем переменную param_name в которой у нас имя этого помещения.


Но так как мы делаем это всё цикле for всё это будет повторятся для каждого помещения в списке rooms


Когда цикл for завершится в списке rooms_names будет список всех имен, которые мы назначили в OUT.

1 просмотр0 комментариев

Недавние посты

Смотреть все

denis fazluL.

ARCHITECT. 

bIm MANAGER.

  • Drawing (1)
  • Drawing
  • YouTube
  • Instagram
bottom of page