Groups schedule header cells.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.3.0.0 (25.3.0.0)
Syntax
C#
public void GroupHeaders( int top, int left, int bottom, int right, string caption )
Parameters
- top Int32
- The index of the top row of the selected headers.
- left Int32
- The index of the left column of the selected headers.
- bottom Int32
- The index of the bottom row of the selected headers.
- right Int32
- The index of the right column of the selected headers.
- caption String
- The header caption.
Exceptions
Exception | Condition |
---|---|
ArgumentException | Headers could not be grouped. |
ArgumentNullException | A non-optional argument was null |
Example
C#
public static void CreateSingleCategoryScheduleWithGroupedColumnHeaders(Document doc) { using (Transaction t = new Transaction(doc, "Create single-category with grouped column headers")) { // Build the schedule t.Start(); ViewSchedule vs = ViewSchedule.CreateSchedule(doc, new ElementId(BuiltInCategory.OST_Windows)); AddRegularFieldToSchedule(vs, new ElementId(BuiltInParameter.WINDOW_HEIGHT)); AddRegularFieldToSchedule(vs, new ElementId(BuiltInParameter.WINDOW_WIDTH)); AddRegularFieldToSchedule(vs, new ElementId(BuiltInParameter.ALL_MODEL_MARK)); AddRegularFieldToSchedule(vs, new ElementId(BuiltInParameter.ALL_MODEL_COST)); doc.Regenerate(); // Group the headers in the body section using ViewSchedule methods vs.GroupHeaders(0, 0, 0, 1, "Size"); vs.GroupHeaders(0, 2, 0, 3, "Other"); vs.GroupHeaders(0, 0, 0, 3, "All"); t.Commit(); } } /// <summary> /// Adds a single parameter field to the schedule /// </summary> public static void AddRegularFieldToSchedule(ViewSchedule schedule, ElementId paramId) { ScheduleDefinition definition = schedule.Definition; // Find a matching SchedulableField SchedulableField schedulableField = definition.GetSchedulableFields().FirstOrDefault<SchedulableField>(sf => sf.ParameterId == paramId); if (schedulableField != null) { // Add the found field definition.AddField(schedulableField); } }
VB
Public Shared Sub CreateSingleCategoryScheduleWithGroupedColumnHeaders(doc As Document) Using t As New Transaction(doc, "Create single-category with grouped column headers") ' Build the schedule t.Start() Dim vs As ViewSchedule = ViewSchedule.CreateSchedule(doc, New ElementId(BuiltInCategory.OST_Windows)) AddRegularFieldToSchedule(vs, New ElementId(BuiltInParameter.WINDOW_HEIGHT)) AddRegularFieldToSchedule(vs, New ElementId(BuiltInParameter.WINDOW_WIDTH)) AddRegularFieldToSchedule(vs, New ElementId(BuiltInParameter.ALL_MODEL_MARK)) AddRegularFieldToSchedule(vs, New ElementId(BuiltInParameter.ALL_MODEL_COST)) doc.Regenerate() ' Group the headers in the body section using ViewSchedule methods vs.GroupHeaders(0, 0, 0, 1, "Size") vs.GroupHeaders(0, 2, 0, 3, "Other") vs.GroupHeaders(0, 0, 0, 3, "All") t.Commit() End Using End Sub ' <summary> ' Adds a single parameter field to the schedule ' </summary> Public Shared Sub AddRegularFieldToSchedule(schedule As ViewSchedule, paramId As ElementId) Dim definition As ScheduleDefinition = schedule.Definition ' Find a matching SchedulableField Dim schedulableField As SchedulableField = definition.GetSchedulableFields().FirstOrDefault(Function(sf) sf.ParameterId = paramId) If schedulableField IsNot Nothing Then ' Add the found field definition.AddField(schedulableField) End If End Sub