What's New in PI AF 2015
- Last UpdatedNov 18, 2025
- 6 minute read
- PI System
- AF SDK 2024 R2
- Developer
The PI AF 2015 (2.7.0.6973) release adds a number of new features. The first major enhancement is support for Future Data in the PI Data Archive through the AFDataPipe, AFDataCache, and new methods for specifically differentiating current value from end-of-stream values.
Another major enhancement is an update to the security model to make it similar to the model exposed by the PI Data Archive. ACL’s on AF Objects are no longer being tied directly to Window’s principal, but are instead defined using AF defined identities. See the Security Formats topic for a description of the different security formats.
The other major enhancement is the ability to hide attributes from searches or from use within instances of an AFBaseElement (e.g. element or event frame instances).
This topic contains the following sections:
OSIsoft.AF Namespace
A new static class, AFGlobalSettings, has been added to consolidate the location of global settings within the SDK. The new method overload AFObjectValidateName(AFIdentity, String, String) has been added to validate a name based upon an object's identity. Two new export modes, PIExportModePasteOperation and PIExportModeUseMilliseconds, have been added to control the contents of the export file.
The following new classes, structures, properties, and methods have been added to support the new security model:
- AFSecurityIdentity Class
- AFSecurityIdentities Class
- AFSecurityMapping Class
- AFSecurityMappings Class
- AFSecurityRightsToken Structure
- PISystemSecurityIdentities Property
- PISystemSecurityMappings Property
- PISystemCurrentUserIdentityString Property
- PISystemCurrentUserIdentities Property
- AFSecurityAddIdentity Methods
- AFSecurityRemoveIdentity Methods
- AFSecurityAreEquivalent Method
- AFSecurityGetSecurityString(Boolean) Method
- AFSecurityGetUserIdentityString Method
- AFSecurityGetUserIdentities Method
- AFSecurityGetSecurityEntries Method
- AFSecurityClearSecurityRightsCache Method
OSIsoft.AF.Analysis Namespace
The AFPlugInIsNonEditableConfig attribute has been added to allow a plugin to indicate that its configuration cannot be edited. The adjusted output time of an analysis can by specified by configuring the AFAnalysisTemplateOutputTime property. The AFAnalysisGetCounts and AFAnalysisSetStatus methods have been added to support managing a large number of analyses. The AFAnalysisFindAnalyses(AFDatabase, String, String, NullableInt16, AFCategory, AFAnalysisTemplate, AFElement, AFStatus, AFSortField, AFSortOrder, Int32, Int32) method overload has been added to allow searching for analyses with a description filter.
OSIsoft.AF.Asset Namespace
The new method AFElementChangeReferenceType has been added to allow the reference type defining the relationship between two elements to be changed. The AFElementParent property can now be set to modify an element's primary parent. To make it easier to work with table parameters, the AFTableGetTableWithParameters(IDictionaryString, Object) method was added.
Two new properties, AFAttributeTemplateIsExcluded and AFAttributeTemplateIsHidden, have been added to allow attributes to be excluded or hidden when searching or viewed in an application.
The following method overloads have been added to allow searching for elements or attributes with a description filter:
- AFAttributeFindCaseAttributes(AFAnalysis, AFSearchMode, Object, Object, String, String, AFCategory, AFElementTemplate, String, String, AFCategory, TypeCode, AFSortField, AFSortOrder, Int32)
- AFAttributeFindElementAttributes(AFDatabase, AFElement, String, String, AFCategory, AFElementTemplate, AFElementType, String, String, AFCategory, TypeCode, Boolean, AFSortField, AFSortOrder, Int32)
- AFAttributeFindEventFrameAttributes(AFDatabase, AFSearchMode, Object, Object, AFEventFrame, String, String, String, AFCategory, AFElementTemplate, AFDurationQuery, String, String, AFCategory, TypeCode, Boolean, AFSortField, AFSortOrder, Int32, Int32)
- AFAttributeFindNotificationAttributes(AFDatabase, String, String, AFCategory, AFElementTemplate, String, String, AFCategory, TypeCode, AFSortField, AFSortOrder, Int32)
- AFAttributeFindTransferAttributes(AFDatabase, AFSearchMode, Object, Object, String, String, AFBaseElement, AFBaseElement, AFCategory, AFElementTemplate, String, String, AFCategory, TypeCode, AFSortField, AFSortOrder, Int32)
- AFElementFindElements(AFDatabase, AFElement, String, String, AFCategory, AFElementTemplate, AFElementType, Boolean, AFSortField, AFSortOrder, Int32)
- AFElementFindElementsByAttribute(AFElement, String, String, AFCategory, AFAttributeValueQuery, Boolean, AFSortField, AFSortOrder, Int32)
The performance of existing methods which return the paths to an element has been improved to take advantage of the element hierarchy cache maintained in the server. In addition, the following new methods have been added to return paths to an element:
OSIsoft.AF.Data Namespace
The following properties and methods have been added to the AFData, AFListData, AFDataCache, and AFDataPipe classes to support data with timestamps in the future:
- AFDataEndOfStream(UOM)
- AFDataCreateWithInputDataProvider(IAFDataProvider)
- AFListDataEndOfStream
- AFDataCacheEventHorizonMode
- AFDataCacheEventHorizonOffset
- AFDataCacheProcessAppliedChanges(AFDataPipeUpdateToken)
- AFDataCacheObservePendingChanges(IEnumerableAFChangeInfo)
- AFDataPipeEventHorizonMode
- AFDataPipeEventHorizonOffset
- AFDataPipeProcessAppliedChanges(AFDataPipeUpdateToken)
- AFDataPipeObservePendingChanges(IEnumerableAFChangeInfo)
The following classes and interfaces have been added to support enhancements to AFDataCache:
OSIsoft.AF.EventFrame Namespace
The new method AFEventFrameChangeReferenceType has been added to allow the reference type defining the relationship between two event frames to be changed.
OSIsoft.AF.PI Namespace
The PICollectiveMemberHost, PICollectiveMemberConnectionTimeOut, and PICollectiveMemberOperationTimeOut properties can now be set to allow modifying a collective member's configuration. The PIIdentity, PIIdentities, PIIdentityMapping, and PIIdentityMappings classes have been updated to allow security to be modified by the SDK. The current user security identities can be obtained using the new PIServerCurrentUserIdentityString or PIServerCurrentUserIdentities properties. The new PIServerGetPointCount method will return the number of points on the server.
The PIPointSource and PIPointSources classes have been added to allow access to the point sources on the server. The PIServerPointSources property allows access to the collection of point sources.
The following properties and methods have been added to the PIPoint and PIPointList classes to support data with timestamps in the future:
OSIsoft.AF.UI Namespace
This is a new namespace added to the SDK and includes the new AFPromptForCredential class. This dialog is used internally by the SDK when prompting for credentials and can also be used by applications to prompt for credentials.