Provides access to the room topology in Autodesk Revit.
Namespace: Autodesk.Revit.DB.ArchitectureAssembly: RevitAPI (in RevitAPI.dll) Version: 21.0.0.0 (21.1.1.109)
Syntax
C# |
---|
public class Room : SpatialElement |
Visual Basic |
---|
Public Class Room _ Inherits SpatialElement |
Visual C++ |
---|
public ref class Room : public SpatialElement |
Remarks
The room object can be queried for its boundary for use in space planning tools.
Examples

private void Getinfo_Room(Room room) { string message = "Room: "; //get the name of the room message += "\nRoom Name: " + room.Name; //get the room position LocationPoint location = room.Location as LocationPoint; XYZ point = location.Point; message += "\nRoom position: " + XYZToString(point); //get the room number message += "\nRoom number: " + room.Number; IList<IList<Autodesk.Revit.DB.BoundarySegment>> segments = room.GetBoundarySegments(new SpatialElementBoundaryOptions()); if (null != segments) //the room may not be bound { foreach (IList<Autodesk.Revit.DB.BoundarySegment> segmentList in segments) { message += "\nBoundarySegment of the room: "; foreach (Autodesk.Revit.DB.BoundarySegment boundarySegment in segmentList) { // Get curve start point XYZ start = boundarySegment.GetCurve().GetEndPoint(0); message += "\nCurve start point: " + XYZToString(start); // Get curve end point XYZ end = boundarySegment.GetCurve().GetEndPoint(1); message += " Curve end point: " + XYZToString(end); // Show the boundary elements message += "\nBoundary element id: " + boundarySegment.ElementId.IntegerValue; } } } TaskDialog.Show("Revit",message); } // output the point's three coordinates string XYZToString(XYZ point) { return "(" + point.X + ", " + point.Y + ", " + point.Z + ")"; }

Private Sub Getinfo_Room(room As Room) Dim message As String = "Room: " 'get the name of the room message += vbLf & "Room Name: " & Convert.ToString(room.Name) 'get the room position Dim location As LocationPoint = TryCast(room.Location, LocationPoint) Dim point As XYZ = location.Point message += vbLf & "Room position: " & XYZToString(point) 'get the room number message += vbLf & "Room number: " & Convert.ToString(room.Number) Dim segments As IList(Of IList(Of Autodesk.Revit.DB.BoundarySegment)) = room.GetBoundarySegments(New SpatialElementBoundaryOptions()) If segments IsNot Nothing Then 'the room may not be bound For Each segmentList As IList(Of Autodesk.Revit.DB.BoundarySegment) In segments message += vbLf & "BoundarySegment of the room: " For Each boundarySegment As Autodesk.Revit.DB.BoundarySegment In segmentList ' Get curve start point Dim start As XYZ = boundarySegment.GetCurve().GetEndPoint(0) message += vbLf & "Curve start point: " & XYZToString(start) ' Get curve end point Dim [end] As XYZ = boundarySegment.GetCurve().GetEndPoint(1) message += " Curve end point: " & XYZToString([end]) ' Show the boundary elements message += vbLf & "Boundary element id: " + boundarySegment.ElementId.IntegerValue Next Next End If TaskDialog.Show("Revit", message) End Sub ' output the point's three coordinates Private Function XYZToString(point As XYZ) As String Return "(" & Convert.ToString(point.X) & ", " & Convert.ToString(point.Y) & ", " & Convert.ToString(point.Z) & ")" End Function
Inheritance Hierarchy
System..::..Object
Autodesk.Revit.DB..::..Element
Autodesk.Revit.DB..::..SpatialElement
Autodesk.Revit.DB.Architecture..::..Room
Autodesk.Revit.DB..::..Element
Autodesk.Revit.DB..::..SpatialElement
Autodesk.Revit.DB.Architecture..::..Room