как получить высотную отметку стены?

Автор Тема: как получить высотную отметку стены?  (Прочитано 3477 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
как получить высотную отметку стены?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Не совсем понял вопрос, видимо, как-то так:
Код - C# [Выбрать]
  1. var level = (Level)doc.GetElement(wall.get_Parameter(BuiltInParameter.WALL_BASE_CONSTRAINT).AsElementId());
  2.  
  3. var offset = wall.get_Parameter(BuiltInParameter.WALL_BASE_OFFSET).AsDouble();
  4.  
  5. var elevation = level.ProjectElevation + offset;

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Если нужна отметка верха стены, то самый правильный способ - анализировать геометрию стены. Получить Solid стены и уже из него получать всё, что нужно

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Да не обязательно. То же самое + значение параметра WALL_USER_HEIGHT_PARAM

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Да не обязательно. То же самое + значение параметра WALL_USER_HEIGHT_PARAM
Я могу поспорить =))
Самый простой пример - создать перекрытие, сделать высоту стены до ВЕРХНЕЙ грани перекрытия, а затем соединить стену и перекрытие. В итоге в стене в параметре будет высота именно до верхней грани, а по факту высота будет ниже на толщину перекрытия. И таких примеров можно придумать уйму.

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Я тоже могу поспорить :P Если стену доводим до верхней грани перекрытия, значит нужна именно это высота, иначе жмем кнопку "Присоединить верх/основание"

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Я тоже могу поспорить :P Если стену доводим до верхней грани перекрытия, значит нужна именно это высота, иначе жмем кнопку "Присоединить верх/основание"
Нажав кнопку "Присоединить верх/основание" вы получите стену, высота который будет ниже, чем написано в свойствах, на толщину перекрытия. И если кому-то нужна та высота, которая не соответствует фактической, то это бред

Вот еще пример:



Какая высота у стены?

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
нужна отметка низа стены.
я сделал через boundingbox.min.z
насколько это корректно?

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
нужна отметка низа стены.
я сделал через boundingbox.min.z
насколько это корректно?
Мой предыдущий ответ посмотрите - можно обрезать стену и по низу и я понятия не имею что при этом будет показывать BoundinBox.Min.Z

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
т е не то что нужно?

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
т е не то что нужно?
В вашем случае этого может быть вполне достаточно

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
просто я не уверен что получил необходимое значение..

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Здесь действительно вопрос нужно адресовывать конечным пользователям приложения, как они проектируют и какие цели преследуют мы не знаем. В качестве примера, перекрытие архитектор, конструктор и инженер MEP запроектируют 3 разными способами. Я считаю, что, всё-таки, следует начать с самого консистентного способа - по привязке базового уровня и смещения, просто, понятно, легко построить диалог с пользователем. А дальше уже как пойдет