Application: ScheduleAutomaticFormatter
Revit Platform: All
Revit Version: 2014.0
First Released For: 2014.0
Programming Language: C#
Skill Level: High
Category: Views
Type: ExternalApplication

Subject: Schedule formatting tool
Summary: 
Automatically formats alternating columns of a schedule to have a different background color.  

Classes: 
Autodesk.Revit.DB.ViewSchedule
Autodesk.Revit.DB.ScheduleDefinition
Autodesk.Revit.DB.TableCellStyle
Autodesk.Revit.DB.TableCellStyleOverrideOptions
Autodesk.Revit.DB.IUpdater
Autodesk.Revit.DB.ExtensibleStorage.Schema
Autodesk.Revit.DB.ExtensibleStorage.Entity
Autodesk.Revit.DB.ExtensibleStorage.ExtensibleStorageFilter

Project Files: 
Application.cs – Implements the IExternalApplication.
ScheduleFormatterCommand.cs - The external command setting up schedule formatting for the active schedule.  Also sets up the updater to keep formatting up to date when schedule changes.
ScheduleFormatter.cs - A class that does the schedule formatting.  Also acts as the updater to change the formatting when the schedule changes.

Description: 
This sample provides following functionalities.
•	Formats the columns of the active schedule in alternating colors (white/gray)
•	Adds extensible storage to the schedule to remember that the schedule is governed by this formatting tool 
•	Sets up an updater to watch for changes to schedules which have this extensible storage
•	When the updater is triggered, reformats the columns automatically

Instructions: 
Open a Revit project, set a schedule view active and execute the command from the Addins panel.
Expected result: Schedule is formatted with alternating column colors.

In the Revit user interface, make changes to the schedule – add fields, remove fields and/or reorder fields.
	Expected result: The schedule formatting is reapplied to be correct when the change occurs.