Статьи > Опубликованные статьи
Как найти все внешние ссылки в текущей базе с помощью C#
(1/1)
ADSK:
Как найти все внешние ссылки в текущей базе с помощью C#
Владимир Шу:
Этот код не работает если один из файлов ссылок требует восстановления.
Вот что выводится в консоль автокада при этом:
--- Цитировать ---Command: XrefGraph
---Находим все внешние ссылки ------------------
Xref "42ГП-КР-020-С4.Стены подвала": Z:\42ГП-КР-020-С4.Стены подвала.dwg
"42ГП-КР-020-С4.Стены подвала" is unloaded.
Xref "42ГП-КР-020-С4.Стены подвала": Z:\42ГП-КР-020-С4.Стены подвала.dwg
"42ГП-КР-020-С4.Стены подвала" is unloaded.
Resolve Xref "42ГП-КР-027-С11.Стены подвала": Z:\42ГП-КР-027-С11.Стены подвала.dwg
Xref Z:\42ГП-КР-027-С11.Стены подвала.dwg contains 101 annotation scales.
It is recommended you open and resave the Xref file to remove excess scales.
Error: Unable to load Z:\42ГП-КР-027-С11.Стены подвала.dwg.
Drawing may need recovery.
---Граф внешних ссылок -------------------------
Текущий чертеж
----------------------------------------
--- Конец цитаты ---
Как видно текущий чертеж содержит два XRef-а, но в граф они не попали.
Должно было быть как то так:
--- Цитировать ------Граф внешних ссылок -------------------------
Текущий чертеж
|---- 42ГП-КР-027-С11.Стены подвала
|---- 42ГП-КР-020-С4.Стены подвала
----------------------------------------
--- Конец цитаты ---
Как отловить сообщение об этой ошибке и как ее обработать вообще не понятно.
Можно конечно пытаться самостоятельно строить граф на основе BlockTableRecord ссылок, но как то не очень хочется
Александр Ривилис:
--- Цитата: Владимир Шу от 21-02-2021, 11:39:36 ---Можно конечно пытаться самостоятельно строить граф на основе BlockTableRecord ссылок, но как то не очень хочется
--- Конец цитаты ---
Видимо придётся. На всякий случай попробуй заменить:
--- Код - C# [Выбрать] ---db.ResolveXrefs(true, false);на
--- Код - C# [Выбрать] ---db.ResolveXrefs(false, false);
Владимир Шу:
При
--- Код - C# [Выбрать] ---db.ResolveXrefs(false, false);все ссылки находятся
--- Цитировать ------Находим все внешние ссылки ------------------
---Граф внешних ссылок -------------------------
Текущий чертеж
|-------Resolved Путь внешней ссылки: Z:\42ГП-КР-027-С11.Стены подвала.dwg
| |-------Unloaded Путь внешней ссылки: Z:\42ГП-КР-020-С4.Стены подвала.dwg
----------------------------------------
--- Конец цитаты ---
Но очень странно, сигнатура метода
public void ResolveXrefs(bool useThreadEngine, bool doNewOnly);
как бы говорит, что это просто разрешение на использование многопоточного режима (могу ошибаться).
Есть ли что почитать по подробнее по этому поводу?
Александр Ривилис:
--- Цитата: Владимир Шу от 21-02-2021, 17:26:14 ---Но очень странно, сигнатура метода
public void ResolveXrefs(bool useThreadEngine, bool doNewOnly);
как бы говорит, что это просто разрешение на использование многопоточного режима (могу ошибаться).
Есть ли что почитать по подробнее по этому поводу?
--- Конец цитаты ---
Как обычно стоит посмотреть описание в документации ObjectARX SDK для native метода:
Навигация
Перейти к полной версии