public MessageWindow(MessageVewModel _CP) { InitializeComponent(); cv = _CP; coincidencesBox.Text = cv.RevitModel.isMessage; DataContext = _CP; }
//Метод добавления общих параметров public bool AddParametersToFamily(List <MyParameter> pars, ObservableCollection <ElementId> setfamIds) { //Словарь о совпадениях параметров в семейтсвах foreach (ElementId familyId in setfamIds) { Element family = _document.GetElement(familyId); if (familyId == null) { return(false); } if (family is FamilyInstance fi) { var famDoc = _document.EditFamily(fi.Symbol.Family); using (var tr = new Transaction(famDoc, "AddParameters")) { tr.Start(); foreach (var par in pars) { //Добавление параметра try { BuiltInParameterGroup gr = BuiltInParameterGroup.PG_GENERAL; #region SWITCH группирование switch (par.def.Name) { case "ADSK_Позиция": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Наименование": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Наименование краткое": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Обозначение": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Марка": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Код изделия": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Завод-изготовитель": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Примечание": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Масса": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Масса_Текст": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Единица измерения": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Расход жидкости": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Группирование": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Номер секции": gr = BuiltInParameterGroup.PG_DATA; break; case "ADSK_Этаж": gr = BuiltInParameterGroup.PG_DATA; break; //////////////////////////////////////////// case "ADSK_Диаметр условный": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Ширина": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Высота": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Глубина": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Диаметр": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_ДиаметрИзделия": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Радиус": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Толщина": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Толщина основы": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Толщина полки": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_Толщина стенки": gr = BuiltInParameterGroup.PG_GEOMETRY; break; case "ADSK_Размер_УголПоворота": gr = BuiltInParameterGroup.PG_GEOMETRY; break; //////////////////////////////////////////// case "ADSK_Классификация нагрузок": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; case "ADSK_Количество фаз": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; case "ADSK_Количество фаз числовое": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; case "ADSK_Коэффициент мощности": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; case "ADSK_Напряжение": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; case "ADSK_Номинальная мощность": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; case "ADSK_Полная мощность": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; case "ADSK_Ток": gr = BuiltInParameterGroup.PG_ELECTRICAL_LOADS; break; ////////////////////////////////////////////////// case "ADSK_Код лотка": gr = BuiltInParameterGroup.PG_TEXT; break; ////////////////////////////////////////////////// case "ADSK_Расход воздуха": gr = BuiltInParameterGroup.PG_MECHANICAL_AIRFLOW; break; case "ADSK_Свободный напор воздуха": gr = BuiltInParameterGroup.PG_MECHANICAL_AIRFLOW; break; } #endregion famDoc.FamilyManager.AddParameter(par.def, gr, !par.IsCheckedType); } catch { //Сообщение о наличие параметра в таком семействе isMessage += "Family \u0022" + fi.Symbol.FamilyName + "\u0022 already has parameter \u0022" + par.Name + "\u0022" + "\n"; } } tr.Commit(); } //Загрузка семейства в проект famDoc.LoadFamily(_document, new FamilyLoadOptions()); famDoc.Close(false); } } if (!String.IsNullOrEmpty(isMessage)) { MessageVewModel MessVewModel = new MessageVewModel(this); MessageWindow MessWindow = new MessageWindow(MessVewModel); MessWindow.ShowDialog(); } return(true); }