Получить название раздела из блока вложенных разделов с помощью КОМПАС-api

Автор z-arthur, 06.09.12, 17:13:05

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

z-arthur

Всем привет!

Необходимо с помощью api по Reference базового объекта спецификации определить, входит ли этот объект во вложенный раздел, и если входит, получить название самого раздела.
У кого-нибудь есть такой опыт?

Во вложении рисунок. На нем видно, что СЕ.01.00.003 входит во вложенный раздел "Детали". Необходимо определить название самого раздела ("Комплекты") или хотя бы определить то, что СЕ.01.00.003 входит во вложенный раздел, т.к. только у раздела "Комплекты" есть вложенные разделы.

z-arthur

Можно определить номер вложенного раздела с помощью КОМПАС API 7.

Номер вложенного раздела можно определить через свойство NestedSection интерфейса ISpecificationBaseObject (для меня этого достаточно, чтобы определить, находится ли объект спецификации в разделе "Комплекты").
Экземпляр интерфейса можно получить так:


function GetRootSectionName(objRef: Reference; const SectionName: string; iKompasApp7: IApplication): string;
var
  doc: IKompasDocument;
  description: ISpecificationDescription;
  baseObj: ISpecificationBaseObject;
begin
    Result := SectionName;
    doc := iKompasApp7.ActiveDocument;
    if Assigned(doc) then
    begin
      description := doc.SpecificationDescriptions.Active;
      if Assigned(description) then
      begin
        baseObj := description.BaseObjects.Item[objRef];
        if baseObj.NestedSection <> 0 then
        Result := 'Комплекты';
      end;
    end;
end;