C# Не удается прочитать Entity с нестандартным типом линии

Автор Тема: C# Не удается прочитать Entity с нестандартным типом линии  (Прочитано 3322 раз)

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

Оффлайн Алексей КуликАвтор темы

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Всем доброго!
Мне необходимо прочитать данные с примитива (в моем конкретном случае - слой или полилиния). Работа ведется в нетекущем документе. Базу чертежа-то я открыл, но на строках типа
Код - C# [Выбрать]
  1. LayerTable lt = trans.GetObject(db.LayerTableId, OpenMode.ForRead) as LayerTable; // здесь все хорошо
  2. LayerTableRecord ltr = trans.GetObject(lt[layerName], OpenMode.ForRead) as LayerTablerecord; // ошибка
Получаю ошибку типа eKeyNotFound.
Открываю файл напрямую в ACAD - и выясняется, что для слоя определен пользовательский тип линии, никоим образом со стандартными типами не связанный (да еще и собственные формы использует). Аналогичная ситуация и с полилиниями, если они лежат на таких слоях или им напрямую назначен пользовательский тип линии.

Собственно вопрос - что я делаю не так? Каким образом можно прочитать в нетекущем документе подобные примитивы?
Спасибо!
--
Дополню: файл с описаниями типов линий не находится по путям поиска. Сделано сознательно и намеренно.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Алексей Кулик,
Попробуй переключить WorkingDatabase на открытую базу. Ну и желательно посмотреть кусок кода подлиннее.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей КуликАвтор темы

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Так, пока отбой. Я явно где-то в другом месте допустил ошибку, т.к. получение описаний слоев на новом тестовом проекте прошло вполне корректно.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
явно где-то в другом месте допустил ошибку
lt[layerName] и eKeyNotFound

такого layerName нет в LayerTable, возможно этот слой подгружается из внешней ссылки

Оффлайн Алексей КуликАвтор темы

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Не, проблема была в том, что я запутался в какой-то момент, с какой базой работаю. После нормализации кода все стало на свои места и перестало меня напрягать ;)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!