ViewScheduleCreateSchedule(Document, ElementId, ElementId) Method

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
)

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

ViewSchedule
The newly created schedule.
Exceptions
ExceptionCondition
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.
Example
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();
    }
}
See Also