Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: simson43 от 09-09-2018, 20:03:47

Название: как получить высотную отметку стены?
Отправлено: simson43 от 09-09-2018, 20:03:47
как получить высотную отметку стены?
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Игнатович от 10-09-2018, 10:25:15
Не совсем понял вопрос, видимо, как-то так:
Код - 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;
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Пекшев aka Modis от 10-09-2018, 18:09:29
Если нужна отметка верха стены, то самый правильный способ - анализировать геометрию стены. Получить Solid стены и уже из него получать всё, что нужно
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Игнатович от 10-09-2018, 18:16:56
Да не обязательно. То же самое + значение параметра WALL_USER_HEIGHT_PARAM
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Пекшев aka Modis от 10-09-2018, 18:21:27
Да не обязательно. То же самое + значение параметра WALL_USER_HEIGHT_PARAM
Я могу поспорить =))
Самый простой пример - создать перекрытие, сделать высоту стены до ВЕРХНЕЙ грани перекрытия, а затем соединить стену и перекрытие. В итоге в стене в параметре будет высота именно до верхней грани, а по факту высота будет ниже на толщину перекрытия. И таких примеров можно придумать уйму.
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Игнатович от 10-09-2018, 18:25:43
Я тоже могу поспорить :P Если стену доводим до верхней грани перекрытия, значит нужна именно это высота, иначе жмем кнопку "Присоединить верх/основание"
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Пекшев aka Modis от 10-09-2018, 18:31:19
Я тоже могу поспорить :P Если стену доводим до верхней грани перекрытия, значит нужна именно это высота, иначе жмем кнопку "Присоединить верх/основание"
Нажав кнопку "Присоединить верх/основание" вы получите стену, высота который будет ниже, чем написано в свойствах, на толщину перекрытия. И если кому-то нужна та высота, которая не соответствует фактической, то это бред

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

(https://s15.postimg.cc/tbbuno5dz/Screenshot_1.png) (https://postimg.cc/image/tbbuno5dz/)

Какая высота у стены?
Название: Re: как получить высотную отметку стены?
Отправлено: simson43 от 11-09-2018, 08:20:28
нужна отметка низа стены.
я сделал через boundingbox.min.z
насколько это корректно?
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Пекшев aka Modis от 11-09-2018, 10:10:36
нужна отметка низа стены.
я сделал через boundingbox.min.z
насколько это корректно?
Мой предыдущий ответ посмотрите - можно обрезать стену и по низу и я понятия не имею что при этом будет показывать BoundinBox.Min.Z
Название: Re: как получить высотную отметку стены?
Отправлено: simson43 от 11-09-2018, 11:14:38
т е не то что нужно?
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Пекшев aka Modis от 11-09-2018, 21:45:29
т е не то что нужно?
В вашем случае этого может быть вполне достаточно
Название: Re: как получить высотную отметку стены?
Отправлено: simson43 от 12-09-2018, 23:01:56
просто я не уверен что получил необходимое значение..
Название: Re: как получить высотную отметку стены?
Отправлено: Александр Игнатович от 13-09-2018, 11:23:02
Здесь действительно вопрос нужно адресовывать конечным пользователям приложения, как они проектируют и какие цели преследуют мы не знаем. В качестве примера, перекрытие архитектор, конструктор и инженер MEP запроектируют 3 разными способами. Я считаю, что, всё-таки, следует начать с самого консистентного способа - по привязке базового уровня и смещения, просто, понятно, легко построить диалог с пользователем. А дальше уже как пойдет