Спецификация Как получить имя файла?

Автор bvr, 19.05.11, 16:54:40

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

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

bvr

Добрый день

Подскажите, как получить имя файла(привязонного) для позиции (обозначения)?

Спасибо

Freddy

У  объектов спецификации есть AttachedDocuments
или ISpecificationBaseObject::Documents

возможно поможет

bvr

Какой - нибудь пример по теме киньте?

Freddy


IKompasDocument invDoc = KompasAddin.KopmasApp7.GetDocument(path); // path - имя файла СП, открытого в приложении либо открыть
var spc = invDoc as SpecificationDocument;
ISpecificationDescriptions spec = spc.SpecificationDescriptions; // получить список спецификацой
ISpecificationDescription SpecActive = spec.Active; // активная спецификация
foreach (ISpecificationBaseObject BaseObject in SpecActive.BaseObjects)
{ // массив по базовым объектаам
if (BaseObject.AttachedDocuments != null)
{// массив по приаттаченным документам
foreach (IAttachedDocument attach in BaseObject.AttachedDocuments)
{
attach.Name - вот и имя файла
}
}

if( BaseObject.Documents != null )
{
вот тут по-моему Documents это массив String , каждый объект это путь к файлу
}
}


Тут корявенький пример для базовых объектов API7, надо бы ещё и проверки дописать.
Для вспомогательных объектов тоже самое, только у них нет Documents

bvr

Смотрю степ10 и не пойму: при активном файле спецификации (spw) пример не отрабатывает, при активном чертеже - отрабатывает, но мне надо найти подключенные файлы именно в файле спецификации, а не по СБ.

"5. Просмотреть спецификацию                - ShowSpc" - рассматриваемый пример

Кто может - проясните ситуацию

Спасибо.