What's New in PI AF 2017 R2
- Last UpdatedNov 18, 2025
- 5 minute read
- PI System
- AF SDK 2024 R2
- Developer
The PI AF 2017 R2 (2.9.5.8352) release provides performance and usability improvements in many areas. Hierarchical enumeration sets and UOM groups are now supported in AF along with the ability to override template attribute descriptions enabling users to more easily create and enhance their asset hierarchies. Another major enhancement is the ability to add categories to objects derived from templates without explicitly allowing template extension.
This topic contains the following sections:
OSIsoft.AF Namespace
Naming pattern substitutions have been enhanced with the addition of the AttributeValue and Name naming patterns. The AFNameSubstitutionResolveName(AFObject, IAFDataProvider, String, IFormatProvider) and AFNameSubstitutionResolveName(AFObject, Object, IAFDataProvider, String, IFormatProvider) overloads have been added to allow a data provider to be specified when resolving attribute value naming patterns.
The extension method AFSDKExtensionIsRetryable(Exception) has been added to help identify errors returned from the server that can be retried.
The ability to have multiple parallel calls to the server share the same proxy connection has been implemented. This allows more users to make parallel calls to the server. The new AFGlobalSettingsPISystemProxyMaxParallelCalls property has been added to specify the maximum number of parallel calls that can be made to a PISystem for the application.
The AFChangeInfoIsVersionAdded property has been added to indicate that an update event is the result of creating a new version.
OSIsoft.AF.Analysis Namespace
The AFAnalysisTemplateExtendedProperties and AFAnalysisExtendedProperties properties have been added to support extended properties on the AFAnalysisTemplate and AFAnalysis classes.
The new AFAnalysisInputTypeEventFrame enumeration value and AFAnalysisRuleOutputDefinitionAFAnalysisRuleOutputDefinition(AFVariableMappingData, String, AFAnalysisOutputType, String, String) constructor overload have been added to support specifying variable mapping data when resolving the analysis rule output definition.
OSIsoft.AF.Asset Namespace
To support the new UOM grouping feature, the following properties and methods have been added:
- IAFAttributeDisplayUOM Property
- AFAttributeTemplateDisplayUOM Property
- AFAttributeDisplayUOM Property
- AFValueConvert(UOMGroup) Method
- AFValuesConvert(UOMGroup) Method
- AFValuesConvert(UOM) Method
The following class and properties provide support for hierarchical enumeration sets:
- AFEnumerationValues Class
- AFEnumerationValueShortName Property
- AFEnumerationValueParent Property
- AFEnumerationValueValues Property
The new Reason attribute trait has been added along with the related RequireEnumerationValue attribute trait requirement and the AllOther attribute trait group.
The ability to retrieve annotations in bulk can now be done using the AFValueGetAnnotations(IEnumerableAFValue) method.
OSIsoft.AF.Data Namespace
The following methods have been added to the AFDataCache and AFDataPipe classes:
OSIsoft.AF.Diagnostics Namespace
The new AFAuditTrailGetFirst(AFObject, Boolean, AFTimeRange, Int32) and AFAuditTrailGetPrevious methods can be used to page through the audit trail results.
OSIsoft.AF.EventFrame Namespace
The AFEventFrameCaptureValues(IAFDataProvider) overload method has been added to allow an application, such as analytics, to utilize the data cache when capturing values.
OSIsoft.AF.PI Namespace
The PIServerDescription and PICollectiveMemberDescription properties can be used to get or set the description of a PI Data Archive or its collective members.
The new PIServerGetAnnotations(IListAFValue) method allows retrieving annotations in bulk.
The PIPointListLoadAttributesAsync(String, CancellationToken) method can be used to load PI Point attributes asynchronously.
The ability to specify the maximum number or retries when paging results of values can be specified using the PIPagingConfigurationPIPagingConfiguration(PIPageType, Int32, Int32, NullableTimeSpan, NullableTimeSpan, NullableInt32) constructor overload or the PIPagingConfigurationMaximumRetries property.
OSIsoft.AF.Search Namespace
Two new query based search classes have been added in this release: AFAttributeSearch and AFNotificationContactTemplateSearch. The AFSearchTokenAFSearchToken(AFSearchFilter, AFSearchOperator, String, IListAFSearchToken) constructor and the AFSearchTokenTokens property have also been added to support enhanced nested query filters for searches.
The following new search tokens have been added: EventFrame, IsInternal, Parent, PlugIn, and PlugInName.
OSIsoft.AF.Time Namespace
The AFTimeRangeAdjustForSyncTime(AFTimeSpan, AFTime, AFBoundaryType) utility method has been added to adjust the time range used as a parameter to the data access methods. The AFTimeUtcTime property is now settable to allow AFTime to work with additional serializations.
OSIsoft.AF.UnitsOfMeasure Namespace
The following classes, methods, and properties have been added to support mapping between UOM groups and to indicate the UOM's origin:
- UOMGroup Class
- UOMGroups Class
- UOMOrigin Class
- UOMDatabaseDisplayUOMGroup Property
- UOMDatabaseUOMGroups Property
- UOMDatabaseGetDisplayUOMGroup(WindowsIdentity) Method
- UOMOrigin Property
- UOMGetGroupMapping(UOMGroup) Method