Creates a regular schedule that can relate to a specific area scheme.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 26.4.0.0 (26.4.0.0)
Syntax
C#
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
| 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.
|
Example
C#
ViewSchedule areaSchedule = null;
using (Transaction transaction = new Transaction(doc, "Creating Schedule"))
{
transaction.Start();
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfCategory(BuiltInCategory.OST_AreaSchemes);
ElementId areaSchemeId = collector.FirstElementId();
if (areaSchemeId != null && areaSchemeId != ElementId.InvalidElementId)
{
areaSchedule = Autodesk.Revit.DB.ViewSchedule.CreateSchedule(doc, new ElementId(BuiltInCategory.OST_Areas), areaSchemeId);
}
if (null != areaSchedule)
{
transaction.Commit();
}
else
{
transaction.RollBack();
}
}
VB
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)
Dim areaSchemeId As ElementId = collector.FirstElementId()
If areaSchemeId IsNot Nothing AndAlso areaSchemeId <> ElementId.InvalidElementId Then
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
See Also
Reference