ksOpenDocument (FileName, false);
// активуємо API.ActivateControllerAPI;
ReadParts (s: TStringList);
i, num: word;: ksPartCollection;: ksPart;
begin
// отримання посилання на список деталей
parts: = ksPartCollection (doc.PartCollection (true));
// число деталей: = parts.GetCount;. Clear;
// деталь з номером -1 є сама збірка
s.Add (ksPart (doc.GetPart (-1)). name);
// цикл по деталямi: = 0 to num-1 do
// отримання посилання на деталь номер i
part: = ksPart (parts.GetByIndex (i));
// поміщаємо ім'я деталі до списку
s.Add (part.name);
: = ksPartCollection (doc.PartCollection (true));
// посилання на деталь з ім'ям partname
if partname ='' then: = ksPart (doc.GetPart (-1))// збірка: = ksPart (parts.GetByName (partname, True, True));
// посилання на список змінних деталі: = ksVariableCollection (part.VariableCollection);
// цикл по змінним деталі
numpart: = vr.GetCount;
SetLength (result, numpart); j: = 0 to numpart-1 do
// посилання на окрему змінну: = ksVariable (vr.GetByIndex (j)); result [j] do: = univar.name;: = univar.note;: = univar.value; ChangeVar (partname, varname: STRING; value_: REAL); vr: ksVariableCollection;: ksPartCollection;: ksPart;: ksVariable;: ksFeature;
// Список деталей: = ksPartCollection (doc.PartCollection (true));
// Шукаємо деталь або складання
if partname ='' then
// Шукаємо змінну по імені: = ksVariable (vr.GetByName (varname, true, true));
// Починаємо редагувати деталь
if partname <>'' then
part.BeginEdit;
// Міняємо значення змінної
vvv.value: = value_;
// Оновлюємо модель
vr.refresh;
part.RebuildModel;
part.Update;
// Завершуємо редагування деталі із збереженням змін
if partname <>'' then.EndEdit (true). RebuildDocument;. UpdateDocumentParam;
// Оновлюємо сборку.refresh;
begin
// виділення пам'яті під масиви
prt: = TStringList.Create;
SetLength (partvar, 0);