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

AF SDK Reference

AFElement Class

  • Last UpdatedNov 18, 2025
  • 22 minute read
AFElement Class
The AFElement is a logical grouping of attributes and child elements.

Inheritance Hierarchy

SystemObject
  OSIsoft.AFAFObject
    OSIsoft.AF.AssetAFBaseElement
      OSIsoft.AF.AssetAFElement
        OSIsoft.AF.ModelingAFModel

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

Syntax

[SerializableAttribute]
public class AFElement : AFBaseElement, IAFTransactable, 
	IAFChangedEvent, IAFSecurable, IAFVersionable, IComparable<AFElement>
<SerializableAttribute>
Public Class AFElement
	Inherits AFBaseElement
	Implements IAFTransactable, IAFChangedEvent, IAFSecurable, IAFVersionable, 
	IComparable(Of AFElement)

Dim instance As AFElement
[SerializableAttribute]
public ref class AFElement : public AFBaseElement, 
	IAFTransactable, IAFChangedEvent, IAFSecurable, IAFVersionable, IComparable<AFElement^>
[<SerializableAttribute>]
type AFElement =  
    class
        inherit AFBaseElement
        interface IAFTransactable
        interface IAFChangedEvent
        interface IAFSecurable
        interface IAFVersionable
        interface IComparable<AFElement>
    end

The AFElement type exposes the following members.

Constructors

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

Properties

  NameDescription
Public property
Analyses
This is a collection of analyses that target this element.
Public property
Attributes
This is a collection of attributes that are owned by this element.
(Inherited from AFBaseElement.)
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
Elements
This is a collection of child elements that have been added to this element.
Public property
ExtendedProperties
A dictionary of extended properties that can be used to store application specific information.
(Inherited from AFBaseElement.)
Public property
HasAnalyses
This read-only property returns if there are any AFAnalysis objects that target this element.
Public property
HasChildren
This read-only property returns if the element has child elements.
Public property
HasNotifications
This read-only property returns if there are any AFNotification objects that target this element.
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
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
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 read-only property returns if the element is a member of the AFDatabase.Elements collection.
Public property
Name
Read/write property that identifies the name of the object.
(Inherited from AFBaseElement.)
Public propertyStatic member
None
An AFElement that represents no element.
Public property
NotificationRules
This is a collection of AFNotificationRule objects that target this element.
Public property
Parent
This property returns the primary parent AFElement that owns the element if it is referenced by another element.
Public property
Parents Obsolete.
This is a collection of all AFElement objects that reference this element.
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
QueryDate
This read-only property returns the date used to retrieve the version of an object.
Public property
Security
This read-only property returns the AFSecurity information for the object.
Public property
Template
The AFElementTemplate that was used to define this object.
(Inherited from AFBaseElement.)
Public property
Type
This property specifies the base type of the element.
(Overrides AFBaseElementType.)
Public property
UniqueID
Read-only property that provides the object's ID as a String.
(Inherited from AFObject.)
Public property
Version
This read-only property returns the current version information as an AFVersion object.

Methods

  NameDescription
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
ApplyQueryDate
Applies the specified query date to the current object and returns an object in the new context.
Public method
ChangeReferenceType
Change the existing AFReferenceType between a child element or the AFDatabase.
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
CheckOutElements
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 AFObject.)
Public method
CompareTo(AFObject)
Compares this instance with a specified AFObject.
(Inherited from AFObject.)
Public methodCode example
ConvertTo
Converts the current object to the specified type of an AFElement.
Public method
CreateDefaultPorts
This method can be used to create the default connection ports based upon the element's type.
Public method
CreateElementTemplate
Create an AFElementTemplate based upon the element.
(Inherited from AFBaseElement.)
Public method
Delete
Deletes all versions of this element from the AFDatabase.
Public methodStatic memberCode example
DeleteElements
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 AFObject.)
Public method
Equals(AFObject)
Indicates whether the current object is equal to another object of the same type.
(Inherited from AFObject.)
Public methodStatic member
FindElement(PISystem, Guid)
Retrieves the AFElement object with the specified unique identifier at the AFTime.MaxValue query date.
Public methodStatic member
FindElement(PISystem, Guid, Guid)
Retrieves the AFElement object with the specified unique identifier and the specified version id.
Public methodStatic member
FindElement(PISystem, Guid, Object)
Retrieves the AFElement object with the specified unique identifier at the specified query date.
Public methodStatic member
FindElements(PISystem, Guid, Object)
Performs a search within the PISystem to retrieve a collection of AFElement objects with the specified list of unique identifiers.
Public methodStatic member
FindElements(AFDatabase, AFElement, String, AFSearchField, Boolean, AFSortField, AFSortOrder, Int32)
Performs a non-paged text search within the AFDatabase to retrieve a collection of AFElement objects which have a field that matches the specified query string.
Public methodStatic member
FindElements(AFDatabase, AFElement, String, AFCategory, AFElementTemplate, AFElementType, Boolean, AFSortField, AFSortOrder, Int32) Obsolete.
Performs a search on the element's name within the AFDatabase to retrieve a non-paged collection of AFElement objects that match the specified query string and additional filters.
Public methodStatic member
FindElements(AFDatabase, AFElement, String, AFSearchField, Boolean, AFSortField, AFSortOrder, Int32, Int32, Int32)
Performs a paged text search within the AFDatabase to retrieve a collection of AFElement objects which have a field that matches the specified query string.
Public methodStatic member
FindElements(AFDatabase, AFElement, String, String, AFCategory, AFElementTemplate, AFElementType, Boolean, AFSortField, AFSortOrder, Int32) Obsolete.
Performs a search on the element's name within the AFDatabase to retrieve a non-paged collection of AFElement objects that match the specified query string and additional filters.
Public methodStatic member
FindElements(AFDatabase, AFElement, String, AFCategory, AFElementTemplate, AFElementType, Boolean, AFSortField, AFSortOrder, Int32, Int32, Int32) Obsolete.
Performs a search on the element's name within the AFDatabase to retrieve a paged collection of AFElement objects that match the specified query string and additional filters.
Public methodStatic member
FindElements(AFDatabase, AFElement, String, String, AFCategory, AFElementTemplate, AFElementType, Boolean, AFSortField, AFSortOrder, Int32, Int32, Int32) Obsolete.
Performs a search on the element's name within the AFDatabase to retrieve a paged collection of AFElement objects that match the specified query string and additional filters.
Public methodStatic memberCode example
FindElementsByAttribute(AFElement, String, AFAttributeValueQuery, Boolean, AFSortField, AFSortOrder, Int32) Obsolete.
Performs a search on the element's name and attribute values within the AFDatabase to retrieve a non-paged collection of AFElement objects.
Public methodStatic memberCode example
FindElementsByAttribute(AFElement, String, AFAttributeValueQuery, Boolean, AFSortField, AFSortOrder, Int32, Int32, Int32) Obsolete.
Performs a search on the element's name and attribute values within the AFDatabase to retrieve a paged collection of AFElement objects.
Public methodStatic memberCode example
FindElementsByAttribute(AFElement, String, String, AFCategory, AFAttributeValueQuery, Boolean, AFSortField, AFSortOrder, Int32) Obsolete.
Performs a search on the element's name, category, and attribute values within the AFDatabase to retrieve a non-paged collection of AFElement objects.
Public methodStatic memberCode example
FindElementsByAttribute(AFElement, String, String, AFCategory, AFAttributeValueQuery, Boolean, AFSortField, AFSortOrder, Int32, Int32, Int32) Obsolete.
Performs a search on the element's name, description, category, and attribute values within the AFDatabase to retrieve a paged collection of AFElement objects.
Public methodStatic member
FindElementsByCategory(AFDatabase, AFElement, AFCategory, Boolean, AFSortField, AFSortOrder, Int32) Obsolete.
Retrieves a non-paged collection of AFElement objects that have the specified AFCategory defined for the element.
Public methodStatic member
FindElementsByCategory(AFDatabase, AFElement, AFCategory, Boolean, AFSortField, AFSortOrder, Int32, Int32, Int32) Obsolete.
Retrieves a paged collection of AFElement objects that have the specified AFCategory defined for the element.
Public methodStatic member
FindElementsByExtendedProperty(AFDatabase, String, IEnumerableGuid, Int32)
Retrieves a list of AFElement objects that have the specified extended property Guid values defined for the element.
Public methodStatic member
FindElementsByExtendedProperty(AFDatabase, String, IEnumerableString, Int32)
Retrieves a list of AFElement objects that have the specified extended property string values defined for the element.
Public methodStatic member
FindElementsByPath(IEnumerableString, AFObject)
Retrieves the AFElement objects identified by the path strings as keyed results.
Public methodStatic member
FindElementsByPath(IEnumerableString, AFObject, IDictionaryString, String)
Retrieves the AFElement objects identified by the path strings as a list.
Public methodStatic memberCode example
FindElementsByReferenceType(AFDatabase, AFElement, AFReferenceType, AFSortField, AFSortOrder, Int32) Obsolete.
Retrieves a non-paged collection of AFElement objects that are referenced by the AFReferenceType under the specified searchRoot or AFDatabase.
Public methodStatic memberCode example
FindElementsByReferenceType(AFDatabase, AFElement, AFReferenceType, AFSortField, AFSortOrder, Int32, Int32, Int32) Obsolete.
Retrieves a paged collection of AFElement objects that are referenced by the AFReferenceType under the specified searchRoot or AFDatabase.
Public methodStatic member
FindElementsByTemplate(AFDatabase, AFObject, AFElementTemplate, Boolean, AFSortField, AFSortOrder, Int32)
Retrieves a non-paged collection of AFElement objects that are instantiated from the specified AFElementTemplate.
Public methodStatic member
FindElementsByTemplate(AFDatabase, AFObject, AFElementTemplate, Boolean, AFSortField, AFSortOrder, Int32, Int32, Int32)
Retrieves a paged collection of AFElement objects that are instantiated from the specified AFElementTemplate.
Public method
GetAnalyses Obsolete.
Retrieves a collection of AFAnalysis objects that target this element.
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 methodStatic member
GetAttributeValues(PISystem, IListAFAttributeValueQueryID, Object, Boolean, WindowsIdentity)
This method gets a collection of AFValue objects for the specified attributes. The collection will be the same length and in the same order as the objectIds collection.
Public methodStatic member
GetAttributeValues(PISystem, IListAFAttributeValueQueryID, ClaimsIdentity, Object, Boolean)
This method gets a collection of AFValue objects for the specified attributes. The collection will be the same length and in the same order as the objectIds collection.
Public method
GetElements(AFSortField, AFSortOrder, Int32) Obsolete.
Retrieves a non-paged collection of child AFElement objects that have been added to this element.
Public method
GetElements(AFSortField, AFSortOrder, Int32, Int32, Int32) Obsolete.
Retrieves a paged collection of child AFElement objects that have been added to this element.
Public method
GetEventFrames(Object, Int32, Int32, AFEventFrameSearchMode, String, AFCategory, AFElementTemplate) Obsolete.
Retrieves a paged collection of AFEventFrame objects that reference this element limited to the specified count beginning at the requested start time in the specified direction.
Public method
GetEventFrames(AFSearchMode, Object, Object, String, AFCategory, AFElementTemplate, AFSortField, AFSortOrder, Int32, Int32) Obsolete.
Retrieves a paged collection of AFEventFrame objects that reference this element within the specified time range.
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 AFObject.)
Public method
GetNotifications
Retrieves a collection of AFNotification objects that target this element.
Public method
GetParents(AFSortField, AFSortOrder, Int32)
Retrieves a non-paged collection of AFElement objects that reference this element.
Public method
GetParents(AFCategory, AFSortField, AFSortOrder, Int32)
Retrieves a non-paged collection of AFElement objects that reference this element using the specified AFCategory.
Public method
GetParents(AFReferenceType, AFSortField, AFSortOrder, Int32)
Retrieves a non-paged collection of AFElement objects that reference this element using the specified AFReferenceType.
Public method
GetParents(AFSortField, AFSortOrder, Int32, Int32, Int32)
Retrieves a paged collection of AFElement objects that reference this element.
Public method
GetParents(AFCategory, AFSortField, AFSortOrder, Int32, Int32, Int32)
Retrieves a paged collection of AFElement objects that reference this element using the specified AFCategory.
Public method
GetParents(AFReferenceType, AFSortField, AFSortOrder, Int32, Int32, Int32)
Retrieves a paged collection of AFElement objects that reference this element using the specified AFReferenceType.
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 methodStatic member
GetPath(String, IListAFElement)
Get a path to the child elements.
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 full paths to this AFElement.
Public method
GetPaths(String)
Get all the relative paths to this AFElement.
Public methodStatic member
GetPaths(String, IListAFElement)
Get all paths to the child elements.
Public method
GetReferenceTypes
Retrieves a collection of all AFReferenceType objects that represent types of references from this element to its child elements.
Public method
GetReferenceTypes(AFElement)
Retrieves a collection of AFReferenceType objects that represent types of references between this element and the specified related element.
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 methodStatic memberCode example
LoadAttributes(IListAFElement, IListAFAttributeTemplate)
Partially load the list of elements with the specified attributes.
Public methodStatic memberCode example
LoadAttributes(PISystem, IListGuid, IListAFAttributeTemplate, Object)
Partially loads the AFElement objects for the list of unique identifiers with the specified attributes.
Public methodStatic memberCode example
LoadElementReferences
Loads the AFElement objects referenced by the specified elements.
Public methodStatic memberCode example
LoadElements(IListAFElement)
Loads the specified list AFElement objects.
Public methodStatic member
LoadElements(PISystem, Guid, Object)
Loads the AFElement objects with the specified unique identifiers at the specified query date.
Public methodStatic memberCode example
LoadElementsToDepth
Loads the specified list AFElement objects and their child elements to the hierarchical depth specified.
Public methodStatic member
LoadParents
Loads the primary parent of each AFElement specified in the list.
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
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.

Events

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

Remarks

An element can be created from a template, or without a template. When based on a template, the element 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 element was not created from a template, then the element's categories, ports, and attributes can be augmented with additional members. The AFElementSearch class can be used for finding elements.

The AFModel object type is also an element that provides additional information to support models. When created from a template, the AFElementTemplate.InstanceType property specifies the type of element to create.

Child elements can be created using one of the AFElements.Add Overload methods of this object's Elements collection. A child element is related to its parent element by a AFReferenceType. An element may be parented by more than one element, although the reference types may restrict that ability in some instances.

An element implements the IAFVersionable interface which supports creating versions. The following properties and collections are common across all versions of the object:

The following properties and collections are specific to a version of the object: Auto-created Analyses and NotificationRules will only exist on the latest version of the element. Manually created Analyses and NotificationRules will exist across all versions of the element.

Caution note Caution
Using object versions can be expensive in memory usage and performance. Extra memory is required to store the versions in the server and for each version of the object loaded in the client. Performance is degraded because of the extra data to be searched in the server and returned back to the client.

Examples

// This example demonstrates how to create an element and display its information.

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

// Create an Element
AFElement myElement = myDB.Elements.Add("MyElement*");
myElement.Description = "This is my element";

// Display Element Information
foreach (AFElement CurElement in myDB.Elements)
{
    Console.WriteLine("Name of Element = {0}", CurElement.Name);
    Console.WriteLine("Description = {0}", CurElement.Description);
}
' This example demonstrates how to create an element and display its information.

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

' Create an Element
Dim CurElement As AFElement = myDB.Elements.Add("MyElement*")
CurElement.Description = "This is my element"

' Display Element Information
For Each CurElement In myDB.Elements
    Console.WriteLine("Name of Element = {0}", CurElement.Name)
    Console.WriteLine("Description = {0}", CurElement.Description)
Next CurElement

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