Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import clr
- clr.AddReference('RevitAPI')
- from Autodesk.Revit.DB import *
- clr.AddReference('RevitServices')
- clr.AddReference('RevitNodes')
- from Revit.Elements import *
- #___________________Создаем конверторы, если единицы None , то ставим 0___________________
- #мм в м
- def to_len(value):
- try:
- x=value*1000
- except:
- x=0
- return x
- #кельвины в градусы
- def to_temp(value):
- try:
- x=value+273.15
- except:
- x=0
- return x
- #кубический фут в секунду в кубический метр в час
- def to_flow(value):
- try:
- x=value/101.94
- except:
- x=0
- return x
- def to_power(value):
- try:
- x=value/0.0929032
- except:
- x=0
- return x
- def gp(x,y):
- return x.GetParameterValueByName(y)
- def sp(x,y,z):
- return x.SetParameterByName(y,z)
- #Список пространств
- spaces = IN[1]
- #Список параметров для записи
- names=["Номер",
- "Имя",
- "Высота помещения",
- "ADSK_Температура в помещении",
- "ADSK_Расход воздуха приточный",
- "ADSK_Расход воздуха вытяжной",
- "ADSK_Наименование приточной системы",
- "ADSK_Наименование вытяжной системы",
- "ADSK_Теплопотери",
- "ADSK_Теплопоступления от оборудования"]
- #номера нужных столбцов из экселя
- columns=[1,2,5,7,14,15,16,17,18,19]
- #транспонируем и фильтруем
- 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 ]
- #Конвертируем единицы
- lst=[]
- lst.append(filter_columns[0])
- lst.append(filter_columns[1])
- lst.append(map(lambda x: to_len(x), filter_columns[2]))
- lst.append(map(lambda x: to_temp(x), filter_columns[3]))
- lst.append(map(lambda x: to_flow(x), filter_columns[4]))
- lst.append(map(lambda x: to_flow(x), filter_columns[5]))
- lst.append(filter_columns[6])
- lst.append(filter_columns[7])
- lst.append(map(lambda x: to_power(x), filter_columns[8]))
- lst.append(map(lambda x: to_power(x), filter_columns[9]))
- #основной цикл, если строкове значения None, то ставим ""
- for i in spaces:
- for indx, val in enumerate(lst[0]):
- for x in range(0,len(names)):
- if gp(i, "Номер")==val:
- try:
- sp(i, names[x], lst[x][indx])
- except:
- if lst[x][indx]==None:
- sp(i, names[x], "")
- else: sp(i, names[x], str(lst[x][indx]))
- OUT="Done"
Add Comment
Please, Sign In to add comment