Я работаю с приложением, которое требует знания о том, какая граница комнаты, какая другая. В этой ситуации важно знать, является ли граница комнаты стеной или разделителем комнаты.
public FindsRoomSeperators(){
SpatialElementBoundaryOptions options = new SpatialElementBoundaryOptions();
options.SpatialElementBoundaryLocation = SpatialElementBoundaryLocation.Finish;
foreach (IList<Autodesk.Revit.DB.BoundarySegment> boundSegList in room.GetBoundarySegments(options))
{
foreach (Autodesk.Revit.DB.BoundarySegment boundSeg in boundSegList)
if ((BuiltInCategory)el.Category.Id.IntegerValue == BuiltInCategory.OST_RoomSeparationLines)
//proccess el
}
}
Однако, как и в Revit 2017, этот код теперь выдает метод, который не найден: «Autodesk.Revit.DB.Element Autodesk.Revit.DB.BoundarySegment.get_Element ()». исключение, предполагающее, что этот метод был удален.
var geometry = (Solid)room.get_Geometry(new Options()).First();
var faces = geometry.Faces;
И хотя это позволяет мне судить о таких вещах, как пол, стоящий под углом, он не говорит мне, какие края исходят от стен, а какие - от разделителей комнаты.
В идеале я мог бы взять те лица, которые у нас есть, и проверить, не является ли какой-либо из краев лица разделителем комнаты. У меня уже есть список всех стен, если это поможет.
Итак, как это сделать в Revit 2017? Желательно без нарушения совместимости с 2015 годом.