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

23/09/2014

Получение поверхности (Face) из ReferenceIntersector

Вопрос: С помощью API мне нужно получить поверхность, которая находится на пересечении заданной точки и заданного направления. Для этого я использую класс ReferenceIntersector. Вот пример моего кода:

Код - C#: [Выделить]
  1.   ReferenceIntersector refIntersector
  2.     = new ReferenceIntersector( id,
  3.       FindReferenceTarget.Face, selectedView );
  4.  
  5.   XYZ origin = new XYZ( x, y, z );
  6.  
  7.   ReferenceWithContext refContext
  8.     = refIntersector.FindNearest(
  9.       origin, new XYZ( 0, 0, -1 ) );
  10.  
  11.   Reference refObject = refContext.GetReference();

А что мне делать дальше с refObject? Как мне в итоге получить ссылку на поверхность?

Ответ: По ссылке (Reference) вы можете получить связанный с ней элемент, с помощью метода Document.GetElement().

Затем, с помощью метода Element.GetGeometryObjectFromReference() вы можете получить геометрический объект этого элемента. Потом, этот геометрический элемент вы уже можете привести к поверхности (Face). Сама поверхность не является элементом Revit.

Источник: http://thebuildingcoder.typepad.com/blog/2014/09/a-couple-of-recent-issues.html#4

Обсуждение: http://adn-cis.org/forum/index.php?topic=974

Опубликовано 23.09.2014