По коодинатам при создании спринклера

Автор Тема: По коодинатам при создании спринклера  (Прочитано 1647 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Доброго дня! Коллеги! Может ли кто нибудь объяснить два момента? Программно создаю спринклер и сталкиваюсь с такими чудесами:
1. Если в функции NewFamilyInstance задаю уровень(!) в качестве основы, то спринклер улетает в непонятном (пока) направлении. Когда сравниваю координаты точки, которые я передаю в функцию, и координаты фактически нового спринклера, то они отличаются... Есть догадка что при передаче уровня, координаты точки он воспринимает относительно этого уровня, НО я ожидал, что X и Y на уровне совпадают с проектным, отличается только отмека высоты, но видимо, я ошибаюсь. Если можно, прокомментируйте как это происходит, в документации пока не нашел информации на этот счет...
2. Если я создаю спринклер просто без основы в виде уровня, то спринклер создается вроде как на правильном месте, но при этом высота устанавливается другая, отличная от той, которую я передаю в координатах... Высоту приходится корректировать после создания спринклера. Это так и работает? Или все-таки, по идее сразу можно его на правильную отметку направлять? (Была идея, что спринклер создается на отметке по умолчанию, но нет... в семействе было задано 0.0, а спринклер на другой отметке).
Прокомментируйте пожалуйста! Ну либо дайте ссылочку где бы этот вопрос более менее подробно был изложен...

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
1) Координаты в internal units (футы) преобразовал?

2) Есть такие штуки, как базовая точка и точка съемки, т.е. "программный" (0, 0, 0) не обязательно соответствует нулю проектному

3) Да, высота (XYZ.Z) при создании семейства (NewFamilyInstance) на уровне насколько помню, задается относительно самого уровня

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

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
1) Координаты в internal units (футы) преобразовал?

2) Есть такие штуки, как базовая точка и точка съемки, т.е. "программный" (0, 0, 0) не обязательно соответствует нулю проектному

3) Да, высота (XYZ.Z) при создании семейства (NewFamilyInstance) на уровне насколько помню, задается относительно самого уровня

По единицам я такую фишку относительно понял, одно время помучился с ней, поэтому более или менее тут уверен, что правильно, тем более что: все координаты, которые передаю для создания в общем то вычислены относительно объектов в модели во внутренних единицах. Ну и опять же я сделал такую проверочную штуку: вывел значения координат именной той переменной которую передаю в функцию, а потом взял Location.Point созданного объекта и они разные. Опять же разница в зависимости от того передаю ли я в качестве основы уровень или не передают отличается по-разному: если не передаю уровень, то создается спринклер с правильными X и Y но Z совсем другой (в моем случае создает на отметке 1500 от нуля) если передаю уровень то и координаты XY также отличаются от тех которые передал. вот такой интересный момент. понятно, что какая то закономерность есть, но хотелось бы четко понимать в каких случаях как они будут преобразованы. И опять же если не даешь основу, то логично было бы ожидать, что координаты будут восприняты как абсолютные...
2. В принципе этот момент исключить нельзя, но по идее я в чистом проекте это делаю, есть надежда что без специальных телодвижений они должны совпадать... Или я ошибаюсь?