ViewSchedule.GroupHeaders Method

ViewScheduleGroupHeaders Method

Groups schedule header cells.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public void GroupHeaders(
	int top,
	int left,
	int bottom,
	int right,
	string caption
)
Public Sub GroupHeaders ( 
	top As Integer,
	left As Integer,
	bottom As Integer,
	right As Integer,
	caption As String
)
public:
void GroupHeaders(
	int top, 
	int left, 
	int bottom, 
	int right, 
	String^ caption
)
member GroupHeaders : 
        top : int * 
        left : int * 
        bottom : int * 
        right : int * 
        caption : string -> unit 

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
ExceptionCondition
ArgumentException Headers could not be grouped.
ArgumentNullException A non-optional argument was null
Example
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);
    }
}
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

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