Я работаю над приложением, которое требует знания о том, какая граница комнаты, какая другая. В этой ситуации важно знать, является ли граница комнаты стенкой или разделителем комнаты.Как получить разделители номеров в revit 2017
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;
И в то время как это позволяет мне судить такие вещи, как все, или не пол стоит под углом он не говорит мне, какие края приходят от стен и которые из номеров sepeartors.
В идеале я мог бы взять лица, которые у нас есть, и проверить, нет ли каких-либо краев лица в комнате. У меня уже есть список всех стен, если это помогает.
Итак, как это сделать в revit 2017? Предпочтительно, не нарушая совместимость с 2015.
в GetBoundarySegments() не была удалена из API на 2017 год, он все еще там (даже не помечается как 'устаревший'). Вам не хватает ссылки? –
Код генерирует исключение в цикле foreach при вызове в 2017 году, но отлично работает в 2016 году. Вышеуказанный метод генерирует исключение: метод не найден: 'Autodesk.Revit.DB.Element Autodesk.Revit.DB.BoundarySegment.get_Element()'. – Thijser