Координаты модели

Автор Тема: Координаты модели  (Прочитано 122 раз)

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

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

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
Координаты модели
« : 13-09-2019, 16:28:32 »
Добрый вечер. Возник такой вопрос.
   От какой точки отсчитываются координаты элементов модели в Revit API?.
Я имею в виду координаты, получаемые после вызова Face.Triangulate().
Судя по всему, это не та точка, от которой отсчитываются координаты Базовой точки проекта
и Точки съемки.
Благодарю за ответы.

Онлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 584
  • Карма: 204
  • Skype: alexandr.ignatovich.itc
Re: Координаты модели
« Ответ #1 : 14-09-2019, 13:44:10 »
Почему Вы так решили?

Вообще говоря, Вы можете получать отличные координаты, если получаете геометрию типоразмера семейства, т.е. GetSymbolGeometry() вместо GetInstanceGeometry()

Если смотрите значения параметров базовой точки, то не забывайте, что координаты считаются в футах (лучше использовать UnitUtils.ConvertFrom... / ConvertTo...)

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

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
Re: Координаты модели
« Ответ #2 : 16-09-2019, 14:34:41 »
   Я работаю над конвертером моделей из Ревит в формат нашего программного продукта.
После того как я получаю меш Ревит-модели (вершины и треугольники) и отображаю его у себя
нулевая точка этого меша не совпадает ни с Базовой точкой проекта, ни с Точкой Съемки, ни с началом координат Ревит-модели.
При этом взаимное расположение всех элементов модели является корректным, всё отображается хорошо.
Геометрию получаю через свойство Geemetry для каждого FamilyInstance. Отсюда я делаю вывод, что у модели есть какой-то свой ноль.
Преобразование футов  в миллиметры не забываю.
Может, существует отдельная система координат модели? Со своим нулем?
« Последнее редактирование: 17-09-2019, 13:13:45 от Vladislav »

Оффлайн Алексей Кузин

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 8
Re: Координаты модели
« Ответ #3 : 19-09-2019, 15:36:49 »
Если я правильно понимаю суть вопроса, то в семейсвах есть закрепленные плоскости, вроде бы начало системы модели определяется относительно этой системы.

Была задача корректно отправить геометрию, но она иногда отправлялась со смешением. Использовал вот такое дополнительное смещение.  Попробуйте, возможно поможет...

               
Цитировать
if (famInstance.Location is LocationPoint location)
                {
                    var inv = famInstance.GetTotalTransform().Inverse;
                    return inv.OfPoint(location.Point);
                }