Узнать размерность FDO-класса (2D, 3D).

Автор Тема: Узнать размерность FDO-класса (2D, 3D).  (Прочитано 5527 раз)

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

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

Оффлайн SergeyKАвтор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Здравствуйте всем!
Прошу вашей помощи. Имеется экземпляр MgLayerBase. Из него необходимо узнать размерность Ораклового FDO-класса в Map3D - 2D или 3D. Наивно полагал, что можно ориентироваться на ZTolerance из MgSpatialContextReader. Но он возвращает то-же значение, что и XYTolerance. Можно ли как-то получить сведения из DIMINFO таблицы USER_GEOM_METADATA так, чтобы тупо запрос к ней не делать?

Всем большое спасибо.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Узнать размерность FDO-класса (2D, 3D).
« Ответ #1 : 16-01-2017, 16:44:03 »
А какое это отношение имеет к AutoCAD .NET API? Тему перенёс.
« Последнее редактирование: 16-01-2017, 19:35:01 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн SergeyKАвтор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Re: Узнать размерность FDO-класса (2D, 3D).
« Ответ #2 : 16-01-2017, 21:07:47 »
Всем еще раз добра!

Немного о проблеме. В двух словах - проблема связана с правильным созданием FDO-объекта, который будет положен в оракл. При попытке положить 2D-геометрию в 3D-таблицу  (и наоборот) возникает ошибка несовместимость размерностей. Для того, чтобы правильно формировать геометрию, необходимо знать размерность таблицы-приемника данных.

Всем с уважением.

Оффлайн German

  • ADN Club
  • **
  • Сообщений: 84
  • Карма: 13
Re: Узнать размерность FDO-класса (2D, 3D).
« Ответ #3 : 17-01-2017, 10:28:31 »
Чисто теоретически, может надо копать в сторону схемы?
На приложенной картинке очень "русский" ))



Отмечено как Решение SergeyK 17-01-2017, 11:27:27

Оффлайн SergeyKАвтор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Re: Узнать размерность FDO-класса (2D, 3D).
« Ответ #4 : 17-01-2017, 11:27:01 »
Чисто теоретически, может надо копать в сторону схемы?
Вы совершенно правы. Надо смотреть в сторону метаданных геометрического поля.

Код - C# [Выбрать]
  1. private bool IsLayer3D(MgLayerBase mgLayer)
  2. {
  3.         MgGeometricPropertyDefinition mgGeomPropDef = mgLayer.GetClassDefinition().GetProperties().GetItem(
  4.                 mgLayer.GetClassDefinition().DefaultGeometryPropertyName) as MgGeometricPropertyDefinition;
  5.  
  6.         return mgGeomPropDef.HasElevation;
  7. }

Немного недоглядел. Спасибо за наводку!