Adds a regular field at the end of the list.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2013
Syntax
C# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
Parameters
- schedulableField
- Type: Autodesk.Revit.DB SchedulableField
A SchedulableField object representing the field.
Return Value
The new field.Examples

/// <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();
}
}

' <summary>
' Add fields to view schedule.
' </summary>
' <param name="schedules">List of view schedule.</param>
Public Sub AddFieldToSchedule(document As Document, schedules As List(Of ViewSchedule))
Using transaction As New Transaction(document, "Adding fields to schedule")
transaction.Start()
For Each vs As ViewSchedule In schedules
'Get all schedulable fields from view schedule definition.
Dim schedulableFields As IList(Of SchedulableField) = vs.Definition.GetSchedulableFields()
For Each sf As SchedulableField In schedulableFields
Dim fieldAlreadyAdded As Boolean = False
'Get all schedule field ids
Dim ids As IList(Of ScheduleFieldId) = vs.Definition.GetFieldOrder()
For Each id As ScheduleFieldId 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 Then
fieldAlreadyAdded = True
Exit For
End If
Next
'If schedulable field doesn't exist in view schedule, add it.
If fieldAlreadyAdded = False Then
vs.Definition.AddField(sf)
End If
Next
Next
transaction.Commit()
End Using
End Sub
Exceptions
Exception | Condition |
---|---|
Autodesk.Revit.Exceptions ArgumentException | The field specified by schedulableField may not included in this ScheduleDefinition. -or- The field specified by schedulableField is already included in this ScheduleDefinition. |
Autodesk.Revit.Exceptions ArgumentNullException | A non-optional argument was NULL |