Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AF SDK Reference

What's New in PI AF 2017 R2

  • Last UpdatedNov 18, 2025
  • 5 minute read
What's New in PI AF 2017 R2

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

OSIsoft.AF.Asset Namespace

To support the new UOM grouping feature, the following properties and methods have been added:

The following class and properties provide support for hierarchical enumeration sets:

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

OSIsoft.AF.Diagnostics Namespace

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.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

In This Topic
Related Links
TitleResults for “How to create a CRG?”Also Available in