Проверка. является ли элементы базы данных графическим

Автор Тема: Проверка. является ли элементы базы данных графическим  (Прочитано 7648 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Добрый день!
Открываю базу чертежа в части блока записей таблицы ModelSapce

Код - vb.net [Выбрать]
  1. dim bt as BlockTable = transact.GetObject(db.BlockTableID)
  2. dim Btr as BlockTableRecord = transact.GetObject(bt(BlockTableRecord.ModelSapce))
Далее в цикле делаю перебор по объектам.

Код - vb.net [Выбрать]
  1. For Each obj as ObjectID  In btr
  2. ...
  3. Next

Вопрос следующий
Нужно ли проверять объект таблицы ModelSpace на то, что он является именно графическим объектом или они в этой таблице все графические.
Если нужна такая проверка то как это сделать? Есть ли какая либо функция для проверки?

« Последнее редактирование: 07-06-2016, 20:55:12 от Алексей (IdeaSoft) »

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
или они в это таблице все графические
конечно нет
Нужно ли проверять объект таблицы ModelSpace на то что он является именно графическим объектов
Вы нас спрашиваете? ))) Это вам нужно решать - оно вам надо?
Если нужна такая проверка то как это сделать?
тут могу быть не прав: но все графические примитивы унаследованы от Entity, значит проверить можно

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
унаследованы от Entity
Ну т.е. получается что таблица ModelSpace содержит только объекты классов от класса Entity
Не может получится так,  в следствии кокой либо ошибки, что в эту таблицу попадет запись какого либо абстрактного объекта?

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
значит проверить можно
А ну тогда понятно. Я могу просто проверить является ли объект записи таблицы Entity и этого мне вполне хватит!

Отмечено как Решение Алексей (IdeaSoft) 19-05-2016, 16:42:35

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Нужно ли проверять объект таблицы ModelSpace на то, что он является именно графическим объектом или они в этой таблице все графические.
В этой таблице могут содержаться только примитивы (объекты класса Entity) - они все по определению графические.
Чтобы проверить является ли DBObject графическим его следует привести к Entity и проверить на null (это самый простой способ).
Код - C# [Выбрать]
  1. DBObject obj = ...
  2. Entity ent = obj as Entity;
  3. if (obj != null) {
  4.  // это графический объект...
  5. }
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
поправочка...
...
Entity ent = obj as Entity;
if (ent != null) {
....

Нужно ли проверять объект таблицы ModelSpace на то, что он является именно графическим объектом или они в этой таблице все графические.

Встречный вопрос, а что собственно планируешь сделать с графическими объектами? Ты можешь встретить Entity которые по разным причинам не видно на экране, потому и спрашиваю. Будут ли для тебя такие объекты являться графическими?

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Entity которые по разным причинам не видно на экране
Вопрос видимости для меня не актуален, т.к. мне нужно прочитать
в объектах геометрические характеристики. Не важно виден объект или нет.
Даже если он не виден мне такой объект нужно будет обработать.

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

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
мне нужно прочитать
в объектах геометрические характеристики
для считывания геометрии в любом случае придется приводить к соответствующим типам, т.е. проверка на Entity возможно и не нужна.