What's New in PI AF 2014
- Last UpdatedNov 18, 2025
- 8 minute read
- PI System
- AF SDK 2024 R2
- Developer
The PI AF 2014 (2.6.0.5843) and PI AF 2014 R2 (2.6.1.6238, 2.6.2.6558) releases focused on providing new configured analyses features. In addition, continued enhancements to the data access capabilities are added, including buffering, data caching, new bulk calls, and attribute data pipes. Support for getting AF SDK runtime messages using Event Tracing for Windows is new in this release. You can use the AFGetTrace command-line utility to view these messages.
This topic contains the following sections:
OSIsoft.AF Namespace
The ability to find multiple objects using path filters has been added with the new methods AFObjectFindObjects and AFAttributeFindAttributes. The new method AFPathTokenParsePath along with the new structures AFPathToken and AFPathFilter provides a way to parse an AF object path into tokens. A new AFObjectFindObject(IListAFPathToken, AFObject) overload allows you to build up the list of path tokens to find an object without needing to parse the path.
The new methods AFChangeInfoFindObject(PISystem, Boolean) and AFChangeInfoRefresh have been added to allow control over how objects not loaded in the client are handled when processing changes from the server. A new property AFChangeInfoIsValueUpdate has been added to detect if the change was due to a value being updated.
A new property AFConnectionInfoIdleTimeout allows the timeout for idle connections to the PI AF Server to be read.
Support for configuring naming patterns for creating new objects from an element template has been added. The pattern is configured by setting the AFElementTemplateNamingPattern property. The new AFNameSubstitution class is used to implement this feature. The AFNameSubstitutionResolveName can also be used to rename an existing object using the naming patterns.
The ability to set security settings on objects in bulk has been added using the AFSecurityAddUser and AFSecurityRemoveUser methods.
Modified objects at the system level are now tracked which allows the new PISystemApplyChanges(AFCheckedOutMode) and PISystemCheckIn(AFCheckedOutMode) methods to save all new objects to the server. The new PISystemRefresh(IEnumerableAFObject) method allows multiple objects to be refreshed at a time.
The PISystemGetClientRpcMetrics method was added to retrieve metrics for calls to the server from the client's perspective.
OSIsoft.AF.Analysis Namespace
The AFAnalysisGetStatus method was added to get the status of a list of analyses in a bulk call or directly from the server without needing to refresh the analyses.
The AFAnalysisTemplateHasTarget, AFAnalysisTemplateHasNotificationTemplate, AFAnalysisHasTemplate, AFAnalysisHasTarget, AFAnalysisHasNotification, and AFAnalysisIsTimeRuleDefinedByTemplate properties allow an efficient way to determine if an analysis template or analysis has these items without requiring them to be loaded from the PI AF Server.
The ability to search for an analysis by GroupID has been added using the AFAnalysisFindAnalysesByGroupID methods.
An analysis will be automatically created by the PI AF Server when an element template is used to create a new element that is the target of an analysis template. The new AFAnalysisAutoCreated property indicates if the analysis was automatically created. The new AFAnalysisResetToTemplate method will reset the analysis back to its template default values.
Support for configured analytics has been added. Several new classes and enumerations have been added to the Analysis namespace and new methods added to the AFAnalysisRule class. An analysis which generates an event frame will set the AFEventFrameAnalysis property or by using one of the new AFEventFramesAdd methods or constructors that accept an analysis as a parameter. The AFEventFrameFindEventFramesByAnalysis method can be used to search for the event frames created by an analysis.
OSIsoft.AF.Asset Namespace
The new class AFTableConnection has been added to allow the table connection configuration to be separated from the table configuration. The AFTable class has also added support for loading portions of large tables into the client with parameterized table queries.
The AFValuesPIPoint property has been added to obtain the PI Point associated with the list of values. The method AFValuesPlotValues(AFTimeRange, Int32) has been added to allow client-side compression of values in a time range to produce a more efficient trend. The new method AFValuesInterpolatedValuesAtTimes returns client-side calculated interpolated values at the specified times.
The AFAttributeSourceUOM and AFAttributeIsDataReferenceDefinedByTemplate properties have been added to an attribute. The AFDataReferenceConfigStringStored property shows the actual value of the configuration string stored. The AFAttributeSetConfigStrings method along with several new methods in the AFDataReference class have also been added to allow attribute configuration strings to be set or repaired in bulk.
The AFElementTemplateHasAnalyses, AFElementTemplateHasNotifications, AFElementHasAnalyses, and AFElementHasNotifications properties allow an efficient way to determine if an element template or element has these items without requiring them to be loaded from the PI AF Server. The AFElementTemplateAnalysisTemplates and AFElementAnalyses collections were added to handle the caching of these targets.
The method AFElementFindElementsByExtendedProperty allows an element to be search by values stored in its extended properties. This is useful for storing foreign IDs as well as creating searchable groups of elements.
OSIsoft.AF.Data Namespace
The class AFDataPipe provides data pipe functionality, similar to the existing PIDataPipe class, but for all types of attributes. These classes also support a new use pattern, IObservable, which is accessed via the GetObserverEvents methods.
The class AFDataCache provides a mechanism to efficiently cache data values. The cache will automatically sign-up for updates from cached attributes so that data access for currently value can occur efficiently and quickly.
New bulk data retrieval calls have been added to the AFListData and PIPointList classes. These include InterpolatedValues, InterpolatedValuesAtTimes, InterpolatedValuesByCount, PlotValues, RecordedValues, RecordedValuesByCount, Summary, FilteredSummaries, and Summaries. These bulk calls can have results paged back to the client. Paging is specified by the PIPagingConfiguration parameter to these methods.
Support for buffered writes has been added with the addition of new overloads of the UpdateValue and UpdateValues methods to the AFData, AFListData, PIPoint, PIServer, and AFDataReference classes that accept the AFBufferOption parameter. If not specified, the new default behavior of the AF SDK will be to buffer writes to the PI Data Archive if buffering is properly configured (through the Buffering Manager).
OSIsoft.AF.Diagnostics Namepace
The new AFAuditTrail class provides a mechanism to view the audit trail information stored in the PI AF Server. The audit trail will track all meta data changes to AF objects.
OSIsoft.AF.EventFrame Namepace
The ability to lock an event frame, case, or transfer using the AFEventFrameLock method to prevent any further changes has been added. Also, a temporary event frame or transfer can now be created (see AFEventFrameIsTemporary).
The attribute values of an event frame can be captured using the AFEventFrameCaptureValues method so that future calls to get the attribute value will be more efficient and do not need to evaluate the DataReference logic. This feature also allows for server-side searching with much higher performance.
Event frames that are in progress (i.e. do not have their end time set) can now be searched using new search modes added to AFSearchMode and AFEventFrameSearchMode.
The method AFEventFrameFindEventFramesByExtendedProperty allows an event frame to be search by values stored in its extended properties. This is useful for storing foreign IDs as well as creating searchable groups of event frames.
OSIsoft.AF.Notification Namepace
The AFNotificationGetStatus method was added to get the status of a list of notifications in a bulk call directly from the server with out needing to refresh the notifications.
The AFDeliveryChannelConfigStringStored property shows the actual value of the configuration string stored.
OSIsoft.AF.PI Namepace
The class PIStateSets provides read/write access to digital states defined on the PI Data Archive. PI Digital State Sets are represented as standard enumeration set objects.
The PIServerFindChangedPIPoints method along with the corresponding PIPointChangeInfo class was added to track changes to PI Points. A new PIPointFindPIPoints overload was added to search for PI Points using a query string.
The new classes PIIdentity and PIIdentityMapping provides read-only access to the defined identities on the PI Data Archive.
The ability to connect to a PI Data Archive server using Windows Authentication has been added by specifying the PIAuthenticationMode to the Connect and SwitchMember methods. The PICollectiveMemberConnectDirect methods allow a direct connection be established to multiple collective members at the same time.
The PIServerDatabaseSecurities has been added to return the collection of available PIDatabaseSecurity objects for the PI Data Archive. The PIServersGetBufferStatus, PIServerGetBufferStatus, and PICollectiveMemberGetBufferStatus methods were added to obtain the status of the PI Buffer Subsystem. PI Buffer Subsystem 4.3 or later is required.
The ability to import and export PI Points via CSV format has been added using the PIServerImportCsv and PIServerExportCsv methods.
OSIsoft.AF.Time Namepace
The new method AFTimeRangeParse was added to parse time range parameters that are relative to each other. The AFTimeZoneBaseUtcOffset returns the base offset from Coordinated Universal Time (UTC).
The AFTimeRuleConfigStringStored property shows the actual value of the configuration string stored.