Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AF SDK Reference

AFTransfer Class

  • Last UpdatedNov 18, 2025
  • 18 minute read
AFTransfer Class
The AFTransfer object represents the transfer of material over a specified period of time between two elements.

Inheritance Hierarchy

SystemObject
  OSIsoft.AFAFObject
    OSIsoft.AF.AssetAFBaseElement
      OSIsoft.AF.EventFrameAFEventFrame
        OSIsoft.AF.EventFrameAFTransfer

Namespace:  OSIsoft.AF.EventFrame
Assembly:  OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182

Syntax

[SerializableAttribute]
public sealed class AFTransfer : AFEventFrame, 
	IComparable<AFTransfer>
<SerializableAttribute>
Public NotInheritable Class AFTransfer
	Inherits AFEventFrame
	Implements IComparable(Of AFTransfer)

Dim instance As AFTransfer
[SerializableAttribute]
public ref class AFTransfer sealed : public AFEventFrame, 
	IComparable<AFTransfer^>
[<SealedAttribute>]
[<SerializableAttribute>]
type AFTransfer =  
    class
        inherit AFEventFrame
        interface IComparable<AFTransfer>
    end

The AFTransfer type exposes the following members.

Constructors

  NameDescription
Public method
AFTransfer(AFDatabase)
Initializes a new instance of the class with default values.
Public method
AFTransfer(AFDatabase, String)
Initializes a new instance of the class with the specified name.
Public method
AFTransfer(AFDatabase, String, AFElementTemplate)
Initializes a new instance of the class with the specified name.
Public method
AFTransfer(AFDatabase, String, AFElementTemplate, AFAnalysis, Boolean)
Initializes a new instance of the class with the specified name.

Properties

  NameDescription
Public property
AcknowledgedBy
This property indicates by whom the AFEventFrame was acknowledged.
(Inherited from AFEventFrame.)
Public property
AcknowledgedDate
This property indicates when the AFEventFrame was acknowledged.
(Inherited from AFEventFrame.)
Public property
Analysis
The AFAnalysis which created this object.
(Inherited from AFEventFrame.)
Public property
AreValuesCaptured
This property indicates whether the AFEventFrame has captured its AFAttribute values.
(Inherited from AFEventFrame.)
Public property
Attributes
This is a collection of attributes that are owned by this element.
(Inherited from AFBaseElement.)
Public property
CanBeAcknowledged
This property indicates whether the AFEventFrame can be acknowledged.
(Inherited from AFEventFrame.)
Public property
Categories
This is a user-defined collection of categories for the object that can be used for querying and/or reporting purposes.
(Inherited from AFBaseElement.)
Public property
CategoriesString
This read-only property returns the list of categories in a string separated by semicolons.
(Inherited from AFBaseElement.)
Public property
CheckOutInfo
This read-only property returns the checked out status information for the object.
Public property
Database
This read-only property returns the AFDatabase where this object is defined.
(Inherited from AFBaseElement.)
Public property
DefaultAttribute
The default AFAttribute for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
DefaultInputPort
The default input AFPort for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
DefaultOutputPort
The default output AFPort for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
DefaultUndirectedPort
The default undirected AFPort for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
Description
Read/write property that provides a more detailed description of the object.
(Inherited from AFBaseElement.)
Public property
Destination
This read-only property returns the element that is the destination of the transfer.
Public property
DestinationPort
This read-only property returns the port that is the destination of the transfer.
Public property
Duration
This is a read-only property which returns the period's StartTime and EndTime values as a time range.
(Inherited from AFEventFrame.)
Public property
EndTime
This read-only property represents the end time of the period.
(Inherited from AFEventFrame.)
Public property
EventFrames
This is a collection of child event frames that have been added to this event frame.
(Inherited from AFEventFrame.)
Public property
ExtendedProperties
A dictionary of extended properties that can be used to store application specific information.
(Inherited from AFBaseElement.)
Public property
HasChildElements
This read-only property returns if the event frame has child elements.
(Inherited from AFEventFrame.)
Public property
HasChildEventFrames
This read-only property returns if the event frame has child event frames.
(Inherited from AFEventFrame.)
Public property
ID
Read-only property that provides a unique identifier for the object to be used for quick access that is not dependent upon the index.
(Inherited from AFObject.)
Public property
Identity
This read-only property contains identity of the object.
(Inherited from AFObject.)
Public property
IsAcknowledged
This property indicates whether the AFEventFrame has been acknowledged.
(Inherited from AFEventFrame.)
Public property
IsAnnotated
This property indicates whether this element has any annotations.
(Inherited from AFBaseElement.)
Public property
IsDeleted
This read-only property indicates whether the object has been deleted.
(Inherited from AFObject.)
Public property
IsDirty
This read-only property indicates whether the object has been modified since the last save to the PI AF Server.
Public property
IsLocked
This property indicates whether the AFEventFrame has been locked.
(Inherited from AFEventFrame.)
Public property
IsNew
This read-only property indicates whether the object is new and has never been saved to the PI AF Server.
Public property
IsRoot
This property indicates if the AFEventFrame is a root object owned by the AFDatabase.
(Inherited from AFEventFrame.)
Public property
IsTemporary
This property indicates whether the AFEventFrame is temporary. A temporary AFEventFrame cannot be saved to the server.
(Inherited from AFEventFrame.)
Public property
Name
Read/write property that identifies the name of the object.
(Inherited from AFBaseElement.)
Public property
Parent
This read-only property is returns the parent AFEventFrame that owns the event frame if it is referenced by another event frame.
(Inherited from AFEventFrame.)
Public property
Parents
This is a collection of all AFEventFrame objects that reference this event frame.
(Inherited from AFEventFrame.)
Public property
PISystem
This read-only property allows access to the PISystem associated with this object.
(Inherited from AFObject.)
Public property
Ports
This is a collection of AFPort objects representing the possible connection ports for this element. Ports are used in a AFModel to define an AFConnection between AFBaseElement object.
(Inherited from AFBaseElement.)
Public property
PrimaryReferencedElement
The primary referenced AFElement associated with the event frame.
(Inherited from AFEventFrame.)
Public property
ReferencedElements
This is a collection of elements that are referenced by this event frame.
(Inherited from AFEventFrame.)
Public property
Security
This read-only property returns the AFSecurity information for the object.
Public property
Severity
This is the severity level associated with the event.
(Inherited from AFEventFrame.)
Public property
Source
This read-only property returns the element that is the source of the transfer.
Public property
SourcePort
This read-only property returns the port that is the source of the transfer.
Public property
StartTime
This read-only property represents the start time of the period.
(Inherited from AFEventFrame.)
Public property
Template
The AFElementTemplate that was used to define this object.
(Inherited from AFBaseElement.)
Public property
TimeRange
This is a read-only property which returns the period's StartTime and EndTime values as a time range.
(Inherited from AFEventFrame.)
Public property
Type
This read-only property specifies the base type of the element.
(Inherited from AFBaseElement.)
Public property
UniqueID
Read-only property that provides the object's ID as a String.
(Inherited from AFObject.)

Methods

  NameDescription
Public method
Acknowledge(String, NullableAFTime)
Acknowledges a single AFEventFrame.
(Inherited from AFEventFrame.)
Public methodCode example
ApplyChanges
This method applies the changes to the object and makes those changes available to other objects for the current user.
Public method
CaptureValues
Capture and cache the AFAttribute values with a AFDataReference using the default non-cached data provider.
(Inherited from AFEventFrame.)
Public method
CaptureValues(IAFDataProvider)
Capture and cache the AFAttribute values with a AFDataReference using the specified IAFDataProvider.
(Inherited from AFEventFrame.)
Public method
ChangeReferenceType
Change the existing AFReferenceType between a child event frame.
(Inherited from AFEventFrame.)
Public methodCode example
CheckIn
This method checks in (commits) all the changes to the object by saving the information to persistent storage.
Public method
CheckOut
This method locks the object so that its configuration can be modified.
Public methodStatic member
CheckOutTransfers
Check out the objects with the specified unique identifiers at the specified query date.
Public method
CompareTo(Object)
Compares this instance with a specified Object.
(Inherited from AFEventFrame.)
Public method
CompareTo(AFEventFrame)
Compares this instance with a specified AFEventFrame.
(Inherited from AFEventFrame.)
Public method
CompareTo(AFObject)
Compares this instance with a specified AFObject.
(Inherited from AFObject.)
Public method
CreateElementTemplate
Create an AFElementTemplate based upon the element.
(Inherited from AFBaseElement.)
Public method
Delete
Deletes this event frame from the AFDatabase.
(Inherited from AFEventFrame.)
Public methodStatic member
DeleteTransfers
Delete the objects with the specified unique identifiers.
Public method
Equals(Object)
Determines whether the specified Object is equal to the current object.
(Inherited from AFEventFrame.)
Public method
Equals(AFEventFrame)
Indicates whether the current object is equal to another object of the same type.
(Inherited from AFEventFrame.)
Public method
Equals(AFObject)
Indicates whether the current object is equal to another object of the same type.
(Inherited from AFObject.)
Public methodStatic member
FindTransfer(PISystem, Guid)
Retrieves the AFTransfer object with the specified unique identifier at the AFTime.MaxValue query date.
Public methodStatic member
FindTransfer(PISystem, Guid, Object)
Retrieves the AFTransfer object with the specified unique identifier at the specified query date.
Public methodStatic member
FindTransfers(PISystem, Guid, Object)
Performs a search within the PISystem to retrieve a collection of AFTransfer objects with the specified list of unique identifiers.
Public methodStatic member
FindTransfers(AFDatabase, String, AFSearchField, AFSortField, AFSortOrder, Int32)
Performs a text search within the AFDatabase to retrieve a collection of AFTransfer objects that match the specified query string.
Public methodStatic member
FindTransfers(AFDatabase, Object, Int32, AFEventFrameSearchMode, String, AFBaseElement, AFBaseElement, AFCategory, AFElementTemplate) Obsolete.
Retrieves a list of AFTransfer objects limited to the specified count beginning at the requested start time in the specified direction.
Public methodStatic member
FindTransfers(AFDatabase, Object, Int32, Boolean, String, AFBaseElement, AFBaseElement, AFCategory, AFElementTemplate) Obsolete.
Retrieves a list of AFTransfer objects limited to the specified count beginning at the requested start time in the specified direction.
Public methodStatic member
FindTransfers(AFDatabase, AFSearchMode, Object, Object, String, AFBaseElement, AFBaseElement, AFCategory, AFElementTemplate, AFSortField, AFSortOrder, Int32) Obsolete.
Retrieves a list of AFTransfer objects that match the specified filtering conditions.
Public method
GetAnnotations
Retrieves a collection of existing AFAnnotation objects belonging to this AFBaseElement.
(Inherited from AFBaseElement.)
Public method
GetAttributeByTrait
Retrieves the child AFAttribute with the specified AFAttributeTrait.
(Inherited from AFBaseElement.)
Public method
GetAttributesByTrait
Retrieves a list of child AFAttribute objects identified by the specified list of attribute traits.
(Inherited from AFBaseElement.)
Public method
GetHashCode
Gets the hash code for this instance of the object which is suitable for use in hashing algorithms and data structures like a hash table.
(Inherited from AFEventFrame.)
Public method
GetParents(AFCategory)
Retrieves a collection of AFEventFrame objects that reference this event frame using the specified AFCategory.
(Inherited from AFEventFrame.)
Public method
GetParents(AFReferenceType)
Retrieves a collection of AFEventFrame objects that reference this event frame using the specified AFReferenceType.
(Inherited from AFEventFrame.)
Public method
GetPath
Returns the full path to the object, using just the names.
(Inherited from AFObject.)
Public method
GetPath(AFObject)
Returns the path to the object relative from another object.
(Inherited from AFObject.)
Public method
GetPath(AFEncodeType, AFObject)
Returns the path to the object relative from another object, using the name and/or id as specified by encodeType.
(Inherited from AFObject.)
Public method
GetPaths
Get all the relative paths to this AFEventFrame.
(Inherited from AFEventFrame.)
Public method
GetReferenceTypes
Retrieves a collection of all AFReferenceType objects that represent types of references from this event frame to its child event frames.
(Inherited from AFEventFrame.)
Public method
GetReferenceTypes(AFEventFrame)
Retrieves a collection of AFReferenceType objects that represent types of references between this event frame and the specified related event frame.
(Inherited from AFEventFrame.)
Public method
GetSecurity
Gets the AFSecurity information of the specified security item associated with the object.
Public method
GetType
Gets the Type of the current instance.
(Inherited from Object.)
Public method
IsTypeOf
Checks if the current AFBaseElement is derived from the specified AFElementTemplate.
(Inherited from AFBaseElement.)
Public method
IsValidDestination(AFPort, String)
This method checks if the specified port is valid as the destination of this transfer.
Public method
IsValidDestination(AFElement, AFPort, String) Obsolete.
This method checks if the specified port is valid as the destination of this transfer.
Public method
IsValidSource(AFPort, String)
This method checks if the specified port is valid as the source of this transfer.
Public method
IsValidSource(AFElement, AFPort, String) Obsolete.
This method checks if the specified port is valid as the source of this transfer.
Public methodStatic member
LoadTransfers(IListAFTransfer)
Loads the specified list AFTransfer objects.
Public methodStatic member
LoadTransfers(PISystem, Guid, Object)
Loads the AFTransfer objects with the specified unique identifiers at the specified query date.
Public method
Lock
Locks this event frame so that no further changes can be made.
(Inherited from AFEventFrame.)
Public method
Persist
This method returns the persistence string for the object.
(Inherited from AFObject.)
Public method
Refresh
Refreshes the client with any changes that have been made to the object since loaded.
Public method
SetDestination(AFPort)
Set the element and port that are the destination of the transfer.
Public method
SetDestination(AFElement, AFPort) Obsolete.
Set the element and port that are the destination of the transfer.
Public method
SetEndTime
Set the time that represents the time that the period ended.
(Inherited from AFEventFrame.)
Public method
SetSource(AFPort)
Set the element and port that are the source of the transfer.
Public method
SetSource(AFElement, AFPort) Obsolete.
Set the element and port that are the source of the transfer.
Public method
SetStartTime
Set the time that represents the time that the period started.
(Inherited from AFEventFrame.)
Public method
ToString
Returns a String that represents the current object.
(Inherited from AFObject.)
Public method
UndoCheckOut
This method discards all the changes to the object and all sub-objects since the last call to CheckOut. Any changes since the check out will be lost.
Public method
Unlock
Unlocks a locked event frame so that further changes can be made.
(Inherited from AFEventFrame.)

Events

  NameDescription
Public eventCode example
Changed
Event is raised when the object or one of its sub-objects is changed.

Remarks

You create a transfer by calling one of the AFDatabase.AddTransfer Overload methods. A transfer can be created from a template, or without a template. When based on a template, the transfer will derive its initial definition of Categories, Attributes, and Ports from the template. Later modifications to the template will be propagated to all elements created from it. If the template allows it, or if the transfer was not created from a template, then the transfer's categories, ports, and attributes can be augmented with additional members. The AFTransferSearch class can be used for finding transfers.

An AFTransfer can be used to record the genealogy of a batch or unit batch, or the transfer of materials between elements. To track externally supplied materials, assign them to a batch. A batch or material may be transferred into multiple destinations.

Use the PISystem.Supports method to check if the PISystem supports the Transfer feature.

Examples

// This example will create a transfer (source to destination) and then display its information.

// Get the Database
PISystems myPISystems = new PISystems();
AFDatabase myDB = myPISystems.DefaultPISystem.Databases.DefaultDatabase;

// Create an Element Template with Ports
AFElementTemplate myElemTempl = myDB.ElementTemplates.Add("MyTemplate");
myElemTempl.Ports.Add("OutPort", "An output port", AFPortType.Output, isDefault: true);
myElemTempl.Ports.Add("InPort", "An input port", AFPortType.Input, isDefault: true);

// Create source and destination Elements
AFElement srcElement = myDB.Elements.Add("srcElement", myElemTempl);
AFElement destElement = myDB.Elements.Add("destElement", myElemTempl);

// Create a Transfer Element Template
AFElementTemplate myTransTempl = myDB.ElementTemplates.Add("MyTransferTemplate");
myTransTempl.InstanceType = typeof(AFTransfer);

// Create a Transfer. 
AFTransfer myTransfer = myDB.AddTransfer("MyTransfer", myTransTempl);
myTransfer.Description = "This is my transfer.";
myTransfer.SetSource(srcElement.DefaultOutputPort);
myTransfer.SetDestination(destElement.DefaultInputPort);
myTransfer.SetStartTime(System.DateTime.UtcNow.AddDays(-0.95));
myTransfer.SetEndTime(System.DateTime.UtcNow.AddDays(-0.90));
myDB.CheckIn();

// Get the Transfers Collection
AFNamedCollectionList<AFTransfer> Transfers = AFTransfer.FindTransfers(myDB,
    AFSearchMode.Overlapped, System.DateTime.UtcNow.AddDays(-1.05),
    System.DateTime.UtcNow, "", null, null, null, null,
    AFSortField.Name, AFSortOrder.Ascending, int.MaxValue);

// Display Information on each Transfer.
Console.WriteLine("Number of Transfers = {0}", Transfers.Count);
foreach (AFTransfer CurTransfer in Transfers)
{
    Console.WriteLine("Transfer Name = {0}", CurTransfer.Name);
    Console.WriteLine("Description = {0}", CurTransfer.Description);
    Console.WriteLine("Source element = {0}", CurTransfer.Source.Name);
    Console.WriteLine("Source port = {0}", CurTransfer.SourcePort.Name);
    Console.WriteLine("Destination element = {0}", CurTransfer.Destination.Name);
    Console.WriteLine("Destination port = {0}", CurTransfer.DestinationPort.Name);
    Console.WriteLine("Start Time = {0}", CurTransfer.StartTime.LocalTime);
    Console.WriteLine("End Time = {0}", CurTransfer.EndTime.LocalTime);
}
' This example will create a transfer (source to destination) and then display its information.

' Get the Database
Dim myPISystems As New PISystems
Dim myDB As AFDatabase = myPISystems.DefaultPISystem.Databases.DefaultDatabase

' Create an Element Template with Ports
Dim myElemTempl As AFElementTemplate = myDB.ElementTemplates.Add("MyTemplate")
myElemTempl.Ports.Add("OutPort", "An output port", AFPortType.Output, isDefault:=True)
myElemTempl.Ports.Add("InPort", "An input port", AFPortType.Input, isDefault:=True)

' Create source and destination Elements
Dim srcElement As AFElement = myDB.Elements.Add("srcElement", myElemTempl)
Dim destElement As AFElement = myDB.Elements.Add("destElement", myElemTempl)

' Create a Transfer Element Template
Dim myTransTempl As AFElementTemplate = myDB.ElementTemplates.Add("MyTransferTemplate")
myTransTempl.InstanceType = GetType(AFTransfer)

' Create a Transfer.
Dim myTransfer As AFTransfer = myDB.AddTransfer("MyTransfer", myTransTempl)
myTransfer.Description = "This is my transfer."
myTransfer.SetSource(srcElement.DefaultOutputPort)
myTransfer.SetDestination(destElement.DefaultInputPort)
myTransfer.SetStartTime(System.DateTime.UtcNow.AddDays(-0.95))
myTransfer.SetEndTime(System.DateTime.UtcNow.AddDays(-0.9))

' Get the Transfers Collection
Dim Transfers As AFNamedCollectionList(Of AFTransfer) = AFTransfer.FindTransfers(myDB,
    AFSearchMode.Overlapped, System.DateTime.UtcNow.AddDays(-1.05),
    System.DateTime.UtcNow, "", Nothing, Nothing, Nothing, Nothing,
    AFSortField.Name, AFSortOrder.Descending, Int32.MaxValue)

' Display Information on each Transfer.
Console.WriteLine("Number of Transfers = {0}", Transfers.Count)
Dim CurTransfer As AFTransfer
For Each CurTransfer In Transfers
    Console.WriteLine("Transfer Name = {0}", CurTransfer.Name)
    Console.WriteLine("Description = {0}", CurTransfer.Description)
    Console.WriteLine("Source element = {0}", CurTransfer.Source.Name)
    Console.WriteLine("Source port = {0}", CurTransfer.SourcePort.Name)
    Console.WriteLine("Destination element = {0}", CurTransfer.Destination.Name)
    Console.WriteLine("Destination port = {0}", CurTransfer.DestinationPort.Name)
    Console.WriteLine("Start Time = {0}", CurTransfer.StartTime.LocalTime)
    Console.WriteLine("End Time = {0}", CurTransfer.EndTime.LocalTime)
Next CurTransfer

No code example is currently available or this language may not be supported.

No code example is currently available or this language may not be supported.

Version Information

AFSDK


See Also

TitleResults for “How to create a CRG?”Also Available in