Добрый день.
Есть макрос для заполнения полей спецификации для revit 2015, но в 2016 он не работает. После поисков причины, выяснилось, что изменились методы get и set, но разобраться сам не могу, прошу помощи.
часть макроса
foreach (Element e in DuctCurves)
{
ElementType e_type = doc.GetElement( e.GetTypeId() ) as ElementType;//Получить экземпляр семейства
m_duct = e_type.get_Parameter(BuiltInParameter.WINDOW_TYPE_ID).AsString();//Получить значение параметра типа семейства “Маркировка типоразмера”
o_duct = e_type.get_Parameter(BuiltInParameter.ALL_MODEL_DESCRIPTION).AsString();//Получить значение параметра типа семейства “Описание”
ds_name = e.get_Parameter(BuiltInParameter.RBS_SYSTEM_NAME_PARAM).AsString();//Получить значение “Имя системы”
err_name = e.get_Parameter(BuiltInParameter.ELEM_FAMILY_AND_TYPE_PARAM).AsValueString();
Parameter is_round = e.get_Parameter(BuiltInParameter.RBS_CURVE_DIAMETER_PARAM);
if (is_round!=null)
{
t_duct = “диаметр мм-“;
}
else
{
t_duct = “сечение мм-“;
}
duct_size = e.get_Parameter(BuiltInParameter.RBS_CALCULATED_SIZE).AsString();//Получить значение параметра типа экземпляра “Размер”
dlina = e.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble();//Получить значение параметра типа экземпляра “Длина”
dlina = UnitUtils.ConvertFromInternalUnits(dlina, DisplayUnitType.DUT_METERS);
e.get_Parameter(“SPКол-во”).Set(dlina);//Установить значение общего параметра экземпляра “Кол-во”
e.get_Parameter(“SPЕдиница измерения”).Set(“м.”);//Установить значение общего параметра экземпляра “Единица измерения”
e.get_Parameter(“SPИмяСистемы”).Set(ds_name);
e.get_Parameter(“SPПодгруппаРаздела”).Set(“2.Воздуховоды”);
ss_name = e.get_Parameter(BuiltInParameter.RBS_DUCT_PIPE_SYSTEM_ABBREVIATION_PARAM).AsString();//Получить значение “Сокращение системы”
switch (ss_name) {
case “В”:
e.get_Parameter(“SPРазделСпецификации”).Set(“Вентиляция. “+ds_name);
break;
case “П”:
e.get_Parameter(“SPРазделСпецификации”).Set(“Вентиляция. “+ds_name);
break;
case “Р”:
e.get_Parameter(“SPРазделСпецификации”).Set(“Вентиляция. “+ds_name);
break;
default:
break;
}