public void SetLinkInProperty(string OutPartFileName, string SB_FilenameOUT) { string ParamName = null; ksDocument3D iDocument3D_1 = (ksDocument3D)_kompasObject.Document3D(); bool op = iDocument3D_1.Open(OutPartFileName, true); ksPart iPart_1 = (ksPart)iDocument3D_1.GetPart((int)Part_Type.pTop_Part); ksVariableCollection VariableCollection; try { // получаем интерфейс объекта дерева построения ksFeature iFeature = iPart_1.GetFeature(); //получаем коллекцию внешних переменных VariableCollection = iFeature.VariableCollection; // обновляем коллекцию внешних переменных VariableCollection.refresh(); } catch { VariableCollection = iPart_1.VariableCollection(); VariableCollection.refresh(); } //считаем количество переменных в детали int count_1 = VariableCollection.GetCount(); for (int i = 0; i < count_1; i++) { try { //Получаем интерфейс переменной по её имени ksVariable Variable = VariableCollection.GetByIndex(i); ParamName = Variable.name; if (!string.IsNullOrEmpty(Variable.linkDocName)) { Variable.SetLink(SB_FilenameOUT, Variable.linkVarName); iPart_1.RebuildModel(); } } catch { AddWaitStatus($"Ошибка при изменении параметра {ParamName} для детали: " + Path.GetFileName(OutPartFileName)); } } iDocument3D_1.Save(); iDocument3D_1.close(); }