public void RebuildModel(DataTable table) { ksDocument3D doc = _kompas.ActiveDocument3D(); var part = doc.GetPart(-1); var vr = part.VariableCollection; var count = vr.GetCount; List <kompasVariable> Variables = new List <kompasVariable>(); //создаем новый список переменных for (int i = 0; i < count; i++) { kompasVariable VAR = new kompasVariable(); VAR.displayName = table.Rows[i]["displayName"].ToString(); VAR.name = table.Rows[i]["name"].ToString(); VAR.note = table.Rows[i]["note"].ToString(); VAR.value = table.Rows[i]["value"].ToString(); Variables.Add(VAR); } //каджую новую переменную из списка записываем в модель foreach (var VAR in Variables) { ChangeVariableOfAssembly(VAR.name, VAR.value); } part.RebuildModel(); }
public List <kompasVariable> GetVarsOfAssembly() { if (_kompas == null) { LoadKompas(); } ksDocument3D doc = _kompas.ActiveDocument3D(); if (doc == null) { MessageBox.Show("Файл сборки не открыт!"); return(null); } var part = doc.GetPart(-1); //parts.GetByName(partname, true, true); var vr = part.VariableCollection; var count = vr.GetCount; List <kompasVariable> Variables = new List <kompasVariable>(); for (int i = 0; i < count; i++) { var VAR = vr.GetByIndex(i); var kompasVariable = new kompasVariable(); kompasVariable.displayName = VAR.displayName; kompasVariable.name = VAR.name; kompasVariable.note = VAR.note; kompasVariable.value = VAR.value.ToString(); Variables.Add(kompasVariable); } Variables = Variables.OrderBy(o => o.name[2]).ThenBy(o => o.name[Regex.Match(o.name, ".+(_.{1})").Groups[0].Index + 1]).ToList(); return(Variables); }