Получение поверхности (Face) из ReferenceIntersector
Вопрос: С помощью API мне нужно получить поверхность, которая находится на пересечении заданной точки и заданного направления. Для этого я использую класс ReferenceIntersector. Вот пример моего кода:
- ReferenceIntersector refIntersector
- = new ReferenceIntersector( id,
- FindReferenceTarget.Face, selectedView );
- XYZ origin = new XYZ( x, y, z );
- ReferenceWithContext refContext
- = refIntersector.FindNearest(
- origin, new XYZ( 0, 0, -1 ) );
- 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