Revit 2025 API
View |
Creates a regular schedule that can relate to a specific area scheme.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public static ViewSchedule CreateSchedule( Document document, ElementId categoryId, ElementId areaSchemeId )
Public Shared Function CreateSchedule ( document As Document, categoryId As ElementId, areaSchemeId As ElementId ) As ViewSchedule
public: static ViewSchedule^ CreateSchedule( Document^ document, ElementId^ categoryId, ElementId^ areaSchemeId )
static member CreateSchedule : document : Document * categoryId : ElementId * areaSchemeId : ElementId -> ViewSchedule
Parameters
- document Document
- The document to which the new schedule will be added.
- categoryId ElementId
- The ID of the category whose elements will be included in the schedule, or InvalidElementId for a multi-category schedule.
- areaSchemeId ElementId
- The ID of an area scheme in an area schedule, InvalidElementId otherwise.
Return Value
ViewScheduleThe newly created schedule.

Exception | Condition |
---|---|
ArgumentException | document is not a project document. -or- categoryId is not a valid category for a regular schedule. -or- In a non-area schedule, areaSchemeId is not InvalidElementId. -or- In an area schedule, areaSchemeId is not the ID of an area scheme. |
ArgumentNullException | A non-optional argument was null |
ModificationForbiddenException | The document is in failure mode: an operation has failed, and Revit requires the user to either cancel the operation or fix the problem (usually by deleting certain elements). -or- The document is being loaded, or is in the midst of another sensitive process. |
ModificationOutsideTransactionException | The document has no open transaction. |

ViewSchedule areaSchedule = null; using (Transaction transaction = new Transaction(doc, "Creating Schedule")) { transaction.Start(); FilteredElementCollector collector = new FilteredElementCollector(doc); collector.OfCategory(BuiltInCategory.OST_AreaSchemes); //Get first ElementId of AreaScheme. ElementId areaSchemeId = collector.FirstElementId(); if (areaSchemeId != null && areaSchemeId != ElementId.InvalidElementId) { // If you want to create an area schedule, you must use CreateSchedule method with three arguments. // The value of the second argument must be ElementId of BuiltInCategory.OST_Areas category // and the value of third argument must be ElementId of an AreaScheme. areaSchedule = Autodesk.Revit.DB.ViewSchedule.CreateSchedule(doc, new ElementId(BuiltInCategory.OST_Areas), areaSchemeId); } if (null != areaSchedule) { transaction.Commit(); } else { transaction.RollBack(); } }
Dim areaSchedule As ViewSchedule = Nothing Using transaction As New Transaction(doc, "Creating Schedule") transaction.Start() Dim collector As New FilteredElementCollector(doc) collector.OfCategory(BuiltInCategory.OST_AreaSchemes) 'Get first ElementId of AreaScheme. Dim areaSchemeId As ElementId = collector.FirstElementId() If areaSchemeId IsNot Nothing AndAlso areaSchemeId <> ElementId.InvalidElementId Then ' If you want to create an area schedule, you must use CreateSchedule method with three arguments. ' The value of the second argument must be ElementId of BuiltInCategory.OST_Areas category ' and the value of third argument must be ElementId of an AreaScheme. areaSchedule = Autodesk.Revit.DB.ViewSchedule.CreateSchedule(doc, New ElementId(BuiltInCategory.OST_Areas), areaSchemeId) End If If areaSchedule IsNot Nothing Then transaction.Commit() Else transaction.RollBack() End If End Using
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also