What's New in PI AF 2016
- Last UpdatedNov 18, 2025
- 6 minute read
- PI System
- AF SDK 2024 R2
- Developer
The PI AF 2016 (2.8.0.7444, 2.8.1.7549, 2.8.2.7626) release is a major release that implements a preview of a new, more scalable notification infrastructure. This also expands the functionality of event frames to include annotations, acknowledgments and severity. Annotations are provided for elements, transfers and cases as well.
The ability to define attributes with specific characteristics and behaviors, such as limits and predictions, and associate those with other attributes has been added.
New data access calls are available, including async versions of most data calls. New methods of RecordedValuesAtTimes and ReplaceValues allow more efficient data access with the PI Data Archive 2016.
This release also delivers improved scalability and performance overall, with major improvements focused on event frame searching. The AF SDK provides a new, simpler, text-based query mechanisms for finding Elements and Event Frames.
This topic contains the following sections:
OSIsoft.AF Namespace
The AFSecurityRightsAnnotate security permission was added to control the ability to annotate an AFBaseElement and acknowledge an AFEventFrame. The AFObjectGenerateUniqueName(String, IAFList) helper method was added to allow the generation of unique names based upon the items in the supplied list. The following new properties return the configured restrictions for an AFFile which are set using the AFDiag utility: PISystemFileAllowedExtensions and PISystemFileMaxLength.
To support exporting in different time formats when exporting in CSV format, the PIExportModeUseServerTimeZone and PIExportModeUseUtcTime properties have been added. To support searching for an attribute by trait, the new path filter AFPathFilterTypeTrait has been added.
To support a new, more scalable notification infrastructure, the following collections have been added in preview for this release:
OSIsoft.AF.Analysis Namespace
The AFAnalysisTemplateCreateEnabled was added to control the initial status of auto-generated analyses.
OSIsoft.AF.Asset Namespace
An attribute can be designated for manual data entry with the new AFAttributeTemplateIsManualDataEntry and AFAttributeIsManualDataEntry properties. Client applications can utilize this flag to determine whether to provide users with data entry. The new method AFAttributeIsSupportedDataMethod(AFDataMethods) was added to test if an attribute supports a data method.
The new class AFAttributeTrait has been added to allow attributes with well-known behaviors and relationships to be defined. The trait can be used when referencing or finding the attribute instead of needing to know the actual name of the attribute. The following properties and methods have been added to be used with attribute traits:
- AFAttributeTemplateTrait Property
- AFAttributeTemplateGetAttributeTemplateByTrait Method
- AFAttributeTemplateGetAttributeTemplatesByTrait Method
- AFAttributeTrait Property
- AFAttributeGetAttributeByTrait Method
- AFAttributeGetAttributesByTrait Method
- AFElementTemplateGetAttributeTemplateByTrait Method
- AFElementTemplateGetAttributeTemplatesByTrait Method
- AFBaseElementGetAttributeByTrait Method
- AFBaseElementGetAttributesByTrait Method
To support annotations on an AFBaseElement, the AFBaseElementIsAnnotated property and AFBaseElementGetAnnotations method have been added. A new copy constructor AFFileAFFile(AFFile) was added to make it easier to copy file values. To support acknowledging an event frame, the AFElementTemplateCanBeAcknowledged property was added. The AFElementTemplateSeverity property was added to set the default severity for a new event frame.
The AFValueCreate methods have been added to allow the creation of an AFValue without the overhead of boxing/unboxing.
To support new methods in AFData class, the following new methods have been added to a data reference:
- AFDataReferenceReplaceValues
- AFDataReferenceRecordedValuesAtTimes
- AFDataReferenceFilteredSummariesAsync
- AFDataReferenceInterpolatedValueAsync
- AFDataReferenceInterpolatedValuesAtTimesAsync
- AFDataReferenceInterpolatedValuesByCountAsync
- AFDataReferencePlotValuesAsync
- AFDataReferenceRecordedValueAsync
- AFDataReferenceRecordedValuesAsync
- AFDataReferenceRecordedValuesByCountAsync
- AFDataReferenceReplaceValuesAsync
- AFDataReferenceUpdateValuesAsync
- AFDataReferenceSummaryAsync
- AFDataReferenceSummariesAsync
The following new properties and methods have been added in preparation for new, more scalable notification infrastructure. Even though these objects are exposed in the SDK, they are still under development and subject to change.
OSIsoft.AF.Data Namespace
The new method AFDataReplaceValues has been added to replace values within a time range. PI Data Archive 2016 or later is required. To get values as specific times, the AFDataRecordedValuesAtTimes and AFListDataRecordedValuesAtTimes methods have been added. These methods require the PI Data Archive 2016 or later to take full advantage of the performance gains.
Support for asynchronous method calls has been added with the addition of the following methods (corresponding methods were also added to the AFDataReference class):
- AFDataEndOfStreamAsync Method
- AFDataFilteredSummariesAsync Method
- AFDataInterpolatedValueAsync Method
- AFDataInterpolatedValuesAsync Method
- AFDataInterpolatedValuesAtTimesAsync Method
- AFDataPlotValuesAsync Method
- AFDataRecordedValueAsync Method
- AFDataRecordedValuesAsync Method
- AFDataRecordedValuesByCountAsync Method
- AFDataReplaceValuesAsync Method
- AFDataUpdateValuesAsync Method
- AFDataSummaryAsync Method
- AFDataSummariesAsync Method
- AFListDataEndOfStreamAsync Method
- AFListDataInterpolatedValueAsync Method
- AFListDataRecordedValueAsync Method
To support annotations on an AFBaseElement, the following properties and methods have been added to the AFAnnotation class:
- AFAnnotationIsDeleted Property
- AFAnnotationOwner Property
- AFAnnotationAttachment Property
- AFAnnotationSave Method
- AFAnnotationDelete Method
OSIsoft.AF.EventFrame Namespace
The OSIsoft.AF.EventFrameAFSeverity class and the AFEventFrameSeverity property were added to set the severity level for an event frame. The following methods and properties were added to support acknowledging an event frame:
- AFEventFrameCanBeAcknowledged Property
- AFEventFrameIsAcknowledged Property
- AFEventFrameAcknowledgedBy Property
- AFEventFrameAcknowledge Method
OSIsoft.AF.Notification Namespace
The following new objects and properties have been added in preparation for new, more scalable notification infrastructure. Even though these objects are exposed in the SDK, they are still under development and subject to change.
- AFDeliveryFormat Class
- AFDefaultDeliveryFormats Class
- AFDeliveryFormats Class
- AFNotificationRule Class
- AFNotificationRules Class
- AFNotificationRuleSubscriber Class
- AFNotificationRuleSubscribers Class
- AFNotificationRuleTemplate Class
- AFNotificationRuleTemplates Class
- AFNotifyOption Enumeration
- AFMultiTriggerEventOption Enumeration
- AFDeliveryChannelNotificationRule Property
- AFDeliveryChannelNotificationRuleTemplate Property
- AFDeliveryChannelNotificationRuleSubscriber Property
OSIsoft.AF.PI Namespace
The new method PIServerSupports and new enumeration PIServerFeature have been added to allow checking if a feature is supported on the PI Data Archive. The PIPointQueryParseQuery method has been added to parse queries into tokens for searching.
The new method PIPointReplaceValues has been added to replace values within a time range. PI Data Archive 2016 or later is required. To get values as specific times, the PIPointRecordedValuesAtTimes and PIPointListRecordedValuesAtTimes methods have been added. These methods require the PI Data Archive 2016 or later to take full advantage of the performance gains.
Support for asynchronous method calls has been added with the addition of the following methods:
- PIPointEndOfStreamAsync Method
- PIPointFilteredSummariesAsync Method
- PIPointInterpolatedValueAsync Method
- PIPointInterpolatedValuesAsync Method
- PIPointInterpolatedValuesAtTimesAsync Method
- PIPointInterpolatedValuesByCountAsync Method
- PIPointPlotValuesAsync Method
- PIPointRecordedValueAsync Method
- PIPointReplaceValuesAsync Method
- PIPointRecordedValuesAsync Method
- PIPointRecordedValuesByCountAsync Method
- PIPointUpdateValuesAsync Method
- PIPointSummaryAsync Method
- PIPointSummariesAsync Method
- PIPointListEndOfStreamAsync Method
- PIPointListInterpolatedValueAsync Method
- PIPointListRecordedValueAsync Method
OSIsoft.AF.Search Namespace
Support for query based searches has been added with the addition of the new search classes AFElementSearch, AFEventFrameSearch, AFNotificationRuleTemplateSearch, and AFNotificationRuleSearch. The following new classes are used by these new search classes: AFSearchFilter, and AFSearchToken. The following properties and methods have been added to the base AFSearch class:
- AFSearchThrowOnError Property
- AFSearchIdentity Property
- AFSearchPISystem Property
- AFSearchCacheInterval Property
- AFSearchCacheTimeout Property
- AFSearchGetTotalCount Method
- AFSearchRefresh Method