ehoho

Excel read write 10.09.2017

Sep 9th, 2017
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.61 KB | None | 0 0
  1. import clr
  2. clr.AddReference('RevitAPI')
  3. from Autodesk.Revit.DB import *
  4. clr.AddReference('RevitServices')
  5. clr.AddReference('RevitNodes')
  6. from Revit.Elements import *
  7.  
  8. #___________________Создаем конверторы, если единицы None , то ставим 0___________________
  9. #мм в м
  10. def to_len(value):
  11.     try:
  12.         x=value*1000
  13.     except:
  14.         x=0
  15.     return x    
  16. #кельвины в градусы  
  17. def to_temp(value):
  18.     try:
  19.         x=value+273.15
  20.     except:
  21.         x=0
  22.     return x       
  23. #кубический фут в секунду в кубический метр в час
  24. def to_flow(value):
  25.     try:
  26.         x=value/101.94
  27.     except:
  28.         x=0
  29.     return x
  30.    
  31. def to_power(value):
  32.     try:
  33.         x=value/0.0929032
  34.     except:
  35.         x=0
  36.     return x
  37.  
  38. def gp(x,y):
  39.     return x.GetParameterValueByName(y)
  40.    
  41. def sp(x,y,z):
  42.     return x.SetParameterByName(y,z)
  43.    
  44. #Список пространств
  45. spaces = IN[1]
  46.  
  47. #Список параметров для записи
  48. names=["Номер",
  49. "Имя",
  50. "Высота помещения", 
  51. "ADSK_Температура в помещении",   
  52. "ADSK_Расход воздуха приточный",
  53. "ADSK_Расход воздуха вытяжной",
  54. "ADSK_Наименование приточной системы",
  55. "ADSK_Наименование вытяжной системы",
  56. "ADSK_Теплопотери",
  57. "ADSK_Теплопоступления от оборудования"]
  58.  
  59. #номера нужных столбцов из экселя
  60. columns=[1,2,5,7,14,15,16,17,18,19]
  61. #транспонируем и фильтруем
  62. filter_columns=[[[IN[0][j][i] for j in range(len(IN[0]))] for i in range(len(IN[0][0]))] [k-1]  for k in columns ]
  63.  
  64. #Конвертируем единицы
  65. lst=[]
  66. lst.append(filter_columns[0])
  67. lst.append(filter_columns[1])
  68. lst.append(map(lambda x: to_len(x), filter_columns[2]))
  69. lst.append(map(lambda x: to_temp(x), filter_columns[3]))
  70. lst.append(map(lambda x: to_flow(x), filter_columns[4]))
  71. lst.append(map(lambda x: to_flow(x), filter_columns[5]))
  72. lst.append(filter_columns[6])
  73. lst.append(filter_columns[7])
  74. lst.append(map(lambda x: to_power(x), filter_columns[8]))
  75. lst.append(map(lambda x: to_power(x), filter_columns[9]))
  76.  
  77. #основной цикл, если строкове значения None, то ставим ""
  78. for i in spaces:
  79.     for indx, val in enumerate(lst[0]):
  80.         for x in range(0,len(names)):  
  81.             if gp(i, "Номер")==val:
  82.                 try:
  83.                     sp(i, names[x], lst[x][indx])
  84.                 except:
  85.                     if lst[x][indx]==None:
  86.                         sp(i, names[x], "")
  87.                     else: sp(i, names[x], str(lst[x][indx]))
  88.                    
  89.  
  90. OUT="Done"
Add Comment
Please, Sign In to add comment