IvaSerge

Untitled

Aug 14th, 2016
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.97 KB | None | 0 0
  1. #На вход получаем воздуховоды
  2.  
  3. """
  4. Проверим, получаем ли мы список или только один элемент.
  5. Если уверены, что всегда приходит спиок,
  6. эту проверку можно не делать.
  7. """
  8.  
  9.  
  10. if isinstance(IN[0], list):
  11.     #если лист, то ОК
  12.     ductList = IN[0]
  13. else:
  14.     #если один элемент - создаем из него одиночный список
  15.     ductList = [IN[0]]
  16.  
  17. #Создадим список, куда будем сохранять толщину воздуховода
  18. ductThickness = []
  19.  
  20.  
  21.    
  22. #Циклом перебираем каждый воздуховод из списка воздуховодов
  23. for duct in ductList:
  24.     #"разворачиваем" элемент, чтоб получить доступ к его параметрам
  25.     ductUnwr = UnwrapElement(duct)
  26.     """
  27.     Найдем высоту воздуховода. К сожалению, параметр с названием
  28.     "Высота" -    зависит от языка Ревита. Если версия английская,
  29.     то этот параметр поменяет название на "Height" и скрипт
  30.     не будет работать.
  31.     Найти нужный параметр поможет хелп по Ревит АПИ, который
  32.     входит в состав Revit SDK (можно скачать на форуме).
  33.     Во встроенных параметрах BUILTIN_PARAMETERS Duct_Height не
  34.     оказалось. Пришлось идти в описание свойств воздуховодов.
  35.     По поиску duct можно зайти в ducr member -> duct properties -> Height
  36.     О! похоже, что нашли высоту. Это свойсво моожно запросить напрямую у
  37.     самого воздуховода используя обычную точку.
  38.     """
  39.     h_ft = ductUnwr.Height
  40.     #высота оказалась в футах. переведем в мм
  41.     h_mm = round(h_ft  * 1000 / 3.2808,0)
  42.    
  43.     #Дальше организовываем нашу операцию ветвления по поиску
  44.     #нужной нам толщины.
  45.     if h_mm <= 200:
  46.         thickness = 0.5
  47.     #и так далее (условия не разгледел). Последним должен быть else:
  48.     elif h_mm <= 450:
  49.         thickness = 0.6#и т.п.
  50.     else:
  51.         thickness = 0.9 #ну например, 0.9 ))
  52.    
  53.     #Добавим в конец списка полученную толщину
  54.     ductThickness.append(thickness)
  55.    
  56.     """
  57.     К сожалению, записывать параметры внутри Питон-нода не просто.
  58.     Хотя, в дальнейшем, можно разобраться как это делать.
  59.     Поэтому запишем их уже в теле Динамо череж уже знакомый нод.
  60.     """
  61.            
  62. OUT = ductList, ductThickness
Add Comment
Please, Sign In to add comment