Adds a regular field at the end of the list.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 21.0.0.0 (21.1.1.109)
Since:
2013
Syntax
Return Value
The new field.
Examples
CopyC#
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)
{
IList<SchedulableField> schedulableFields = vs.Definition.GetSchedulableFields();
foreach (SchedulableField sf in schedulableFields)
{
bool fieldAlreadyAdded = false;
IList<ScheduleFieldId> ids = vs.Definition.GetFieldOrder();
foreach (ScheduleFieldId id in ids)
{
if (vs.Definition.GetField(id).GetSchedulableField() == sf)
{
fieldAlreadyAdded = true;
break;
}
}
if (fieldAlreadyAdded == false)
{
vs.Definition.AddField(sf);
}
}
}
transaction.Commit();
}
}
CopyVB.NET
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
Dim schedulableFields As IList(Of SchedulableField) = vs.Definition.GetSchedulableFields()
For Each sf As SchedulableField In schedulableFields
Dim fieldAlreadyAdded As Boolean = False
Dim ids As IList(Of ScheduleFieldId) = vs.Definition.GetFieldOrder()
For Each id As ScheduleFieldId In ids
If vs.Definition.GetField(id).GetSchedulableField() = sf Then
fieldAlreadyAdded = True
Exit For
End If
Next
If fieldAlreadyAdded = False Then
vs.Definition.AddField(sf)
End If
Next
Next
transaction.Commit()
End Using
End Sub
Exceptions
See Also