Наш стандарт именования View для Elevations должен включать Название комнаты и номер комнаты, и я пытаюсь автоматизировать переименование этих фасадов, когда пользователь меняет имя комнаты.
Я написал DMU, который работает путем создания временного плана этажа. Просмотр (tempView) и
с использованием FilteredElementCollector:
Код: Выделить всё
List markersMaybeInRoom = new FilteredElementCollector(doc, tempView.Id)
.OfClass(typeof(ElevationMarker))
.WhereElementIsNotElementType()
.Cast()
.Where(e => e.HasElevations())
.ToList();
foreach (ElevationMarker marker in markersMaybeInRoom)
{
BoundingBoxXYZ emBB = marker.get_BoundingBox(tempView);
double x = emBB.Max.X - offset;
double y = emBB.Max.Y - offset;
XYZ markerLocation = new XYZ(x, y, tempView.GenLevel.ProjectElevation);
Room markerRoom = doc.GetRoomAtPoint(markerLocation, roomPhase);
if (markerRoom == null)
continue; // ElevationMarker is not in a Room
if (markerRoom.Id != room.Id)
continue; // ElevationMarker is not in the modified Room
markersInRoom.Add(marker);
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ide-a-room
Мобильная версия