Здравствуйте!
Посмотрите, пожалуйста, на картинку. Это скриншот окна диспетчера внешних ссылок AutoCAD.
Есть внешняя ссылка, вложенная в другую внешнюю ссылку - "АД_Петров". Эта внешняя ссылка подключена по относительному пути. Мне нужно получить этот относительный путь. Внизу окна это свойство "Saved Path".
Свойство BlockTableRecord.PathName в этом случае возвращает абсолютный путь как он записан в диспетчере внешних ссылок в свойстве "Found at". Ниже пример кода для вывода путей всех вложенных внешних ссылок с помощью свойства BlockTableRecord.PathName.
[CommandMethod( "GetRelativePathTest", CommandFlags.Modal)]
public static void GetRelativePathCommand()
{
Document adoc = Application.DocumentManager.MdiActiveDocument;
if (adoc == null) return;
Database db = adoc.Database;
Editor ed = adoc.Editor;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
using (XrefGraph xg = db.GetHostDwgXrefGraph(false))
{
for (int index = 1; index < xg.NumNodes; ++index)
{
using (XrefGraphNode node = xg.GetXrefNode(index))
{
if (node.IsNested)
{
BlockTableRecord btr = tr.GetObject(node.BlockTableRecordId, OpenMode.ForRead) as BlockTableRecord;
ed.WriteMessage("\n"+btr.PathName);
}
}
}
}
tr.Commit();
}
}
Подскажите, пожалуйста, как получить относительный путь или как определить, что внешняя ссылка подключена относительным путем?