Creates a new room within the confines of a plan circuit, or places an unplaced room within the confines of the plan circuit. 
   Namespace:   Autodesk.Revit.Creation  
  Assembly:   RevitAPI  (in RevitAPI.dll) Version: 16.0.0.0 (16.0.0.0) 
Syntax
| C# | 
|---|
   |  
| Visual Basic | 
|---|
   |  
| Visual C++ | 
|---|
   |  
Parameters
- room
 -  Type:  Autodesk.Revit.DB.Architecture Room  
The room which you want to locate in the circuit. Pass a null reference ( Nothing in Visual Basic) to create a new room. 
- circuit
 -  Type:  Autodesk.Revit.DB PlanCircuit  
The circuit in which you want to locate a room. 
Return Value
If successful the room is returned, otherwise a null reference ( Nothing in Visual Basic) .Remarks
 This method will regenerate the document even in manual regeneration mode. 
 Examples
Room InsertNewRoomInPlanCircuit(Autodesk.Revit.DB.Document document, Level level, Phase newConstructionPhase)
{
    // create room using Phase
    Room newScheduleRoom = document.Create.NewRoom(newConstructionPhase);
    // set the Room Number and Name
    string newRoomNumber = "101";
    string newRoomName = "Class Room 1";
    newScheduleRoom.Name = newRoomName;
    newScheduleRoom.Number = newRoomNumber;
    // Get a PlanCircuit
    PlanCircuit planCircuit = null;
    // first get the plan topology for given level
    PlanTopology planTopology = document.get_PlanTopology(level);
    // Iterate circuits in this plan topology
    foreach (PlanCircuit circuit in planTopology.Circuits)
    {
        // get the first circuit we find
        if (null != circuit)
        {
            planCircuit = circuit;
            break;
        }
    }
    Room newRoom2 = null;
    if (null != planCircuit)
    {
        using (Transaction transaction = new Transaction(document, "Create Room"))
        {
           if (transaction.Start() == TransactionStatus.Started)
           {
               // The input room must exist only in the room schedule, 
               // meaning that it does not display in any plan view.
               newRoom2 = document.Create.NewRoom(newScheduleRoom, planCircuit);
               // a model room with the same name and number is created in the 
               // view where the PlanCircuit is located
               if (null != newRoom2)
               {
                   // Give the user some information
                   TaskDialog.Show("Revit", "Room placed in Plan Circuit successfully.");
               }
               transaction.Commit();
           }
        }
    }
    return newRoom2;
} Private Function InsertNewRoomInPlanCircuit(document As Autodesk.Revit.DB.Document, level As Level, newConstructionPhase As Phase) As Room
    ' create room using Phase
    Dim newScheduleRoom As Room = document.Create.NewRoom(newConstructionPhase)
    ' set the Room Number and Name
    Dim newRoomNumber As String = "101"
    Dim newRoomName As String = "Class Room 1"
    newScheduleRoom.Name = newRoomName
    newScheduleRoom.Number = newRoomNumber
    ' Get a PlanCircuit
    Dim planCircuit As PlanCircuit = Nothing
    ' first get the plan topology for given level
    Dim planTopology As PlanTopology = document.PlanTopology(level)
    ' Iterate circuits in this plan topology
    For Each circuit As PlanCircuit In planTopology.Circuits
        ' get the first circuit we find
        If circuit IsNot Nothing Then
            planCircuit = circuit
            Exit For
        End If
    Next
    Dim newRoom2 As Room = Nothing
    If planCircuit IsNot Nothing Then
        Using transaction As New Transaction(document, "Create Room")
            If transaction.Start() = TransactionStatus.Started Then
                ' The input room must exist only in the room schedule, 
                ' meaning that it does not display in any plan view.
                newRoom2 = document.Create.NewRoom(newScheduleRoom, planCircuit)
                ' a model room with the same name and number is created in the 
                ' view where the PlanCircuit is located
                If newRoom2 IsNot Nothing Then
                    ' Give the user some information
                    TaskDialog.Show("Revit", "Room placed in Plan Circuit successfully.")
                End If
                transaction.Commit()
            End If
        End Using
    End If
    Return newRoom2
End Function Exceptions
| Exception | Condition | 
|---|---|
| Autodesk.Revit.Exceptions InvalidOperationException | If the existing room is already placed. | 
| Autodesk.Revit.Exceptions ArgumentException | Thrown if the room does not exist in the given document. | 
| Autodesk.Revit.Exceptions ArgumentException | Thrown if the circuit does not exist in the given document. |