Schedule |
Adds a regular field at the end of the list.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Parameters
- schedulableField SchedulableField
- A SchedulableField object representing the field.
Return Value
ScheduleFieldThe new field.

Exception | Condition |
---|---|
ArgumentException | The field specified by schedulableField may not included in this ScheduleDefinition. -or- The field specified by schedulableField is already included in this ScheduleDefinition. |
ArgumentNullException | A non-optional argument was null |

/// <summary>
/// Add fields to view schedule.
/// </summary>
/// <param name="schedules">List of view schedule.</param>
public void AddFieldToSchedule(Document document, List<ViewSchedule> schedules)
{
using (Transaction transaction = new Transaction(document, "Adding fields to schedule"))
{
transaction.Start();
foreach (ViewSchedule vs in schedules)
{
//Get all schedulable fields from view schedule definition.
IList<SchedulableField> schedulableFields = vs.Definition.GetSchedulableFields();
foreach (SchedulableField sf in schedulableFields)
{
bool fieldAlreadyAdded = false;
//Get all schedule field ids
IList<ScheduleFieldId> ids = vs.Definition.GetFieldOrder();
foreach (ScheduleFieldId id in ids)
{
// If the GetSchedulableField() method of gotten schedule field returns same
// schedulable field, it means the field is already added to the view schedule.
if (vs.Definition.GetField(id).GetSchedulableField() == sf)
{
fieldAlreadyAdded = true;
break;
}
}
//If schedulable field doesn't exist in view schedule, add it.
if (fieldAlreadyAdded == false)
{
vs.Definition.AddField(sf);
}
}
}
transaction.Commit();
}
}
