Revit 2015 API |
ScheduleDefinition..::..AddField Method (SchedulableField) |
ScheduleDefinition Class Example See Also |
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# |
---|
public ScheduleField AddField( SchedulableField schedulableField ) |
Visual Basic |
---|
Public Function AddField ( _ schedulableField As SchedulableField _ ) As ScheduleField |
Visual C++ |
---|
public: ScheduleField^ AddField( SchedulableField^ schedulableField ) |
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 |