Границы помещения

#revit #api #python


Получить границы помещения и элементы их формирующие можно двумя способами:

  • Собственным методом помещения .GetBoundarySegments()

  • С помощью специального класса для работы со spatial элементами SpatialElementGeometryCalculator.


GetBoundarySegments

Метод .GetBoundarySegments() возвращает список списков BoundarySegment, где первый список - это внешний контур помещения, а все последующие - внутренние.

Room.GetBoundarySegments(options)IList<IList<BoundarySegment>>

BoundarySegment .GetCurve()

Curve - кривая ограничивающего сегмента .ElementId

ElementId - элемент образующий ограничивающий сегмент



SpatialElementGeometryCalculator

Этот класс работает со всеми поверхностями помещения.


SpatialElementGeometryCalculator .CalculateSpatialElementGeometry(SpatialElement)SpatialElementGeometryResults .GetGeometry()Solid .GetBoundaryFaceInfo(Face)SpatialElementBoundarySubface .SpatialBoundaryElement

LinkElementId - ограничивающий элемент .GetBoundingElementFace()

Face - поверхность ограничивающего элемента .GetSpatialElementFace() Face - поверхность самого сабфейса


Основная часть манипуляций производится с результатом работы его метода .CalculateSpatialElementGeometry() - объектом класса SpatialElementGeometryResults.


Он предоставляет доступ к границам помещения (объектам класса SpatialElementBoundarySubface), которые в свою очередь имеют такие свойства как: ссылка на ограничивающий элемент, поверхность ограничивающего элемента формирующая помещение и пр.

Основной момент на который нужно обратить внимание:

После получения солида помещения методом SpatialElementGeometryResults.GetGeometry(), поверхности этого солида передаются другому методу .GetBoundaryFaceInfo(Face) в качестве аргумента.

Cсылки

Просмотров: 492
  • YouTube - Белый круг
  • Facebook - Белый круг
  • Instagram - Белый круг

+7 (495) 766-89-13

Россия, город Москва, проспект Мира д.3 стр.3, эт. 4 

м. Сухаревская (выход 3)