CreateSchedule Method (Document, ElementId, ElementId)


Creates a regular schedule that can relate to a specific area scheme.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2013

Syntax

C#
public static ViewSchedule CreateSchedule(
	Document document,
	ElementId categoryId,
	ElementId areaSchemeId
)
Visual Basic
Public Shared Function CreateSchedule ( _
	document As Document, _
	categoryId As ElementId, _
	areaSchemeId As ElementId _
) As ViewSchedule
Visual C++
public:
static ViewSchedule^ CreateSchedule(
	Document^ document, 
	ElementId^ categoryId, 
	ElementId^ areaSchemeId
)

Parameters

document
Type: Autodesk.Revit.DB Document
The document to which the new schedule will be added.
categoryId
Type: Autodesk.Revit.DB ElementId
The ID of the category whose elements will be included in the schedule, or InvalidElementId for a multi-category schedule.
areaSchemeId
Type: Autodesk.Revit.DB ElementId
The ID of an area scheme in an area schedule, InvalidElementId otherwise.

Return Value

The newly created schedule.

Examples

Copy C#
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();
    }
}
Copy VB.NET
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

Exceptions

Exception Condition
Autodesk.Revit.Exceptions 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.
Autodesk.Revit.Exceptions ArgumentNullException A non-optional argument was NULL
Autodesk.Revit.Exceptions 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.
Autodesk.Revit.Exceptions ModificationOutsideTransactionException The document has no open transaction.

See Also