AFValues Class
- Last UpdatedNov 18, 2025
- 15 minute read
- PI System
- AF SDK 2024 R2
- Developer
This collection holds the values returned from
a call to one of the AFAttribute.GetValues Overload,
AFAttributes.GetValue Overload,
or AFAttributeList.GetValue Overload
methods.

Inheritance Hierarchy
Namespace: OSIsoft.AF.Asset
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182
Syntax
[SerializableAttribute] public sealed class AFValues : List<AFValue>
<SerializableAttribute> Public NotInheritable Class AFValues Inherits List(Of AFValue) Dim instance As AFValues
[SerializableAttribute] public ref class AFValues sealed : public List<AFValue^>
[<SealedAttribute>] [<SerializableAttribute>] type AFValues = class inherit List<AFValue> end
The AFValues type exposes the following members.
Constructors
| Name | Description | |
|---|---|---|
| AFValues |
This is the default constructor which creates a new AFValues
list that is empty and has the default initial capacity.
| |
| AFValues(Int32) |
This constructor will create a new AFValues list that is
empty and has the specified initial capacity.
| |
| AFValues(Object, DateTime, AFValueStatus, UOM) |
This constructor will create a new AFValues list from the
specified values, timestamps, and statuses all with the same UOM.
| |
| AFValues(Object, DateTime, AFValueStatus, UOM) |
This constructor will create a new AFValues list from the
specified values, timestamps, statuses, and with each UOM specified.
|
Properties
| Name | Description | |
|---|---|---|
| Attribute |
This property returns the AFAttribute associated with the list of values.
| |
| Capacity | Gets or sets the total number of elements the internal data structure can hold without resizing. (Inherited from ListAFValue.) | |
| Count | Gets the number of elements contained in the ListT. (Inherited from ListAFValue.) | |
| Item | Gets or sets the element at the specified index. (Inherited from ListAFValue.) | |
| PIPoint |
This property returns the PIPoint associated with the list of values.
|
Methods
| Name | Description | |
|---|---|---|
| Add | Adds an object to the end of the ListT. (Inherited from ListAFValue.) | |
| AddRange | Adds the elements of the specified collection to the end of the ListT. (Inherited from ListAFValue.) | |
| AsReadOnly | Returns a read-only ReadOnlyCollectionT wrapper for the current collection. (Inherited from ListAFValue.) | |
| BinarySearch(T) | Searches the entire sorted ListT for an element using the default comparer and returns the zero-based index of the element. (Inherited from ListAFValue.) | |
| BinarySearch(T, IComparerT) | Searches the entire sorted ListT for an element using the specified comparer and returns the zero-based index of the element. (Inherited from ListAFValue.) | |
| BinarySearch(Int32, Int32, T, IComparerT) | Searches a range of elements in the sorted ListT for an element using the specified comparer and returns the zero-based index of the element. (Inherited from ListAFValue.) | |
| Clear | Removes all elements from the ListT. (Inherited from ListAFValue.) | |
| Contains | Determines whether an element is in the ListT. (Inherited from ListAFValue.) | |
| Convert(UOM) | ||
| Convert(UOMGroup) | ||
| ConvertAllTOutput | Converts the elements in the current ListT to another type, and returns a list containing the converted elements. (Inherited from ListAFValue.) | |
| CopyTo(T) | Copies the entire ListT to a compatible one-dimensional array, starting at the beginning of the target array. (Inherited from ListAFValue.) | |
| CopyTo(T, Int32) | Copies the entire ListT to a compatible one-dimensional array, starting at the specified index of the target array. (Inherited from ListAFValue.) | |
| CopyTo(Int32, T, Int32, Int32) | Copies a range of elements from the ListT to a compatible one-dimensional array, starting at the specified index of the target array. (Inherited from ListAFValue.) | |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
| Exists | Determines whether the ListT contains elements that match the conditions defined by the specified predicate. (Inherited from ListAFValue.) | |
| Find | Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire ListT. (Inherited from ListAFValue.) | |
| FindAll | Retrieves all the elements that match the conditions defined by the specified predicate. (Inherited from ListAFValue.) | |
| FindIndex(PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire ListT. (Inherited from ListAFValue.) | |
| FindIndex(Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ListT that extends from the specified index to the last element. (Inherited from ListAFValue.) | |
| FindIndex(Int32, Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ListT that starts at the specified index and contains the specified number of elements. (Inherited from ListAFValue.) | |
| FindLast | Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire ListT. (Inherited from ListAFValue.) | |
| FindLastIndex(PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire ListT. (Inherited from ListAFValue.) | |
| FindLastIndex(Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the ListT that extends from the first element to the specified index. (Inherited from ListAFValue.) | |
| FindLastIndex(Int32, Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the ListT that contains the specified number of elements and ends at the specified index. (Inherited from ListAFValue.) | |
| ForEach | Performs the specified action on each element of the ListT. (Inherited from ListAFValue.) | |
| GetEnumerator | Returns an enumerator that iterates through the ListT. (Inherited from ListAFValue.) | |
| GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
| GetRange | Creates a shallow copy of a range of elements in the source ListT. (Inherited from ListAFValue.) | |
| GetType | Gets the Type of the current instance. (Inherited from Object.) | |
| GetValueArrays |
This method returns the values of this collection as three (3) synchronized arrays of value, timestamp, and flags.
| |
| IndexOf(T) | Searches for the specified object and returns the zero-based index of the first occurrence within the entire ListT. (Inherited from ListAFValue.) | |
| IndexOf(T, Int32) | Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the ListT that extends from the specified index to the last element. (Inherited from ListAFValue.) | |
| IndexOf(T, Int32, Int32) | Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the ListT that starts at the specified index and contains the specified number of elements. (Inherited from ListAFValue.) | |
| Insert | Inserts an element into the ListT at the specified index. (Inherited from ListAFValue.) | |
| InsertRange | Inserts the elements of a collection into the ListT at the specified index. (Inherited from ListAFValue.) | |
| InterpolatedValuesAtTimes |
This method returns calculated interpolated values at the specified times.
| |
| LastIndexOf(T) | Searches for the specified object and returns the zero-based index of the last occurrence within the entire ListT. (Inherited from ListAFValue.) | |
| LastIndexOf(T, Int32) | Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the ListT that extends from the first element to the specified index. (Inherited from ListAFValue.) | |
| LastIndexOf(T, Int32, Int32) | Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the ListT that contains the specified number of elements and ends at the specified index. (Inherited from ListAFValue.) | |
| PlotValues |
Reduces the number of values over the specified time range to minimum necessary for producing an
accurate trend over the number of intervals (typically represents pixels).
| |
| Remove | Removes the first occurrence of a specific object from the ListT. (Inherited from ListAFValue.) | |
| RemoveAll | Removes all the elements that match the conditions defined by the specified predicate. (Inherited from ListAFValue.) | |
| RemoveAt | Removes the element at the specified index of the ListT. (Inherited from ListAFValue.) | |
| RemoveRange | Removes a range of elements from the ListT. (Inherited from ListAFValue.) | |
| Reverse | Reverses the order of the elements in the entire ListT. (Inherited from ListAFValue.) | |
| Reverse(Int32, Int32) | Reverses the order of the elements in the specified range. (Inherited from ListAFValue.) | |
| Sort | Sorts the elements in the entire ListT using the default comparer. (Inherited from ListAFValue.) | |
| Sort(IComparerT) | Sorts the elements in the entire ListT using the specified comparer. (Inherited from ListAFValue.) | |
| Sort(ComparisonT) | Sorts the elements in the entire ListT using the specified ComparisonT. (Inherited from ListAFValue.) | |
| Sort(Int32, Int32, IComparerT) | Sorts the elements in a range of elements in ListT using the specified comparer. (Inherited from ListAFValue.) | |
| Summaries |
Returns several summaries for this set of values over a time range for each interval within the range.
| |
| Summary |
Returns several summaries for this set of values over a single time range.
| |
| ToArray | Copies the elements of the ListT to a new array. (Inherited from ListAFValue.) | |
| ToPIValues | Obsolete.
This method returns the values of this collection as a new collection of
PISDK.PIValue objects.
| |
| ToString | Returns a string that represents the current object. (Inherited from Object.) | |
| TrimExcess | Sets the capacity to the actual number of elements in the ListT, if that number is less than a threshold value. (Inherited from ListAFValue.) | |
| TrueForAll | Determines whether every element in the ListT matches the conditions defined by the specified predicate. (Inherited from ListAFValue.) |
Remarks
For the fastest access to the values within this collection, use the GetValueArrays(Object, DateTime, AFValueStatus) method rather than iterating through the individual AFValue objects.
This class is not thread-safe.
Examples
// This example shows how to create a dynamic attribute and obtain // the values of an attribute over a specified time range. // Get the Database PISystems myPISystems = new PISystems(); PISystem myPISystem = myPISystems.DefaultPISystem; AFDatabase myDB = myPISystem.Databases.DefaultDatabase; // Create the Attribute AFAttribute myAttribute = new AFAttribute(myDB); myAttribute.Name = "Sinusoid"; myAttribute.Type = typeof(float); myAttribute.DefaultUOM = myPISystem.UOMDatabase.UOMs["m"]; myAttribute.DataReferencePlugIn = AFDataReference.GetPIPointDataReference(myPISystem); myAttribute.ConfigString = @"\\%Server%\Sinusoid"; // Set the Time Range AFTimeRange myTimeRange = new AFTimeRange(); myTimeRange.StartTime = new AFTime(DateTime.UtcNow.AddHours(-1)); myTimeRange.EndTime = AFTime.Now; // Display each Value of the Attribute during the Time Range AFValues myValues = myAttribute.GetValues(myTimeRange, 0, null); Console.WriteLine("Number of values = {0}", myValues.Count); foreach (AFValue myValue in myValues) { Console.WriteLine("Annotated = {0}", myValue.Annotated); Console.WriteLine("IsGood = {0}", myValue.IsGood); Console.WriteLine("Questionable = {0}", myValue.Questionable); Console.WriteLine("Substituted = {0}", myValue.Substituted); Console.WriteLine("TimeStamp = {0}", myValue.Timestamp.LocalTime); Console.WriteLine("UOM = {0}", myValue.UOM); Console.WriteLine("Value = {0}", myValue.Value); }
' This example shows how to create a dynamic attribute and obtain ' the values of an attribute over a specified time range. ' Get the Database Dim myPISystems As New PISystems Dim myPISystem As PISystem = myPISystems.DefaultPISystem Dim myDB As AFDatabase = myPISystem.Databases.DefaultDatabase ' Create the Attribute Dim myAttribute As New AFAttribute(myDB) myAttribute.Name = "Sinusoid" myAttribute.Type = GetType(Double) myAttribute.DefaultUOM = myPISystem.UOMDatabase.UOMs("m") myAttribute.DataReferencePlugIn = AFDataReference.GetPIPointDataReference(myPISystem) myAttribute.ConfigString = "\\%Server%\Sinusoid" ' Set the Time Range Dim myTimeRange As New AFTimeRange() myTimeRange.StartTime = New AFTime(DateTime.UtcNow.AddHours(-1)) myTimeRange.EndTime = AFTime.Now ' Display each Value of the Attribute during the Time Range Dim myValues As AFValues = myAttribute.GetValues(myTimeRange, 0, Nothing) Console.WriteLine("Number of values = {0}", myValues.Count) Dim myValue As AFValue For Each myValue In myValues Console.WriteLine("Annotated = {0}", myValue.Annotated) Console.WriteLine("IsGood = {0}", myValue.IsGood) Console.WriteLine("Questionable = {0}", myValue.Questionable) Console.WriteLine("Substituted = {0}", myValue.Substituted) Console.WriteLine("TimeStamp = {0}", myValue.Timestamp.LocalTime) Console.WriteLine("UOM = {0}", myValue.UOM) Console.WriteLine("Value = {0}", myValue.Value) Next myValue
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.