What's New in PI AF 2018
- Last UpdatedNov 18, 2025
- 6 minute read
- PI System
- AF SDK 2024 R2
- Developer
The PI AF 2018 (2.10.0.8628) release provides performance and usability improvements in many areas:
- The ability to preserve IDs when importing objects.
- Multiple improvements to AF Audit Trail including more flexible exports and ability to exclude audit events from specific users such as a service account.
- Bulk check out and deletion of objects.
- Ability to search by attribute values without a template.
- Support for attribute and attribute template Display Digits similar to how PI Tags can be configured with DisplayDigits.
- Support for new attribute traits Health Status and Health Score.
- Bi-linear interpolation of AF tables.
This topic contains the following sections:
OSIsoft.AF Namespace
The following properties and enumeration values have been added:
- The IAFTransactableIsSystemDefined property can be used by clients to determine if a transactable object is defined by the system and cannot be modified.
- The PIImportModePreserveUniqueIDs enumeration value was added to support preserving unique identifiers when importing.
- The AFSearchFieldEMail enumeration value supports the ability to search contacts by email address.
- The PISystemFeaturesQuerySearchValueByPath enumeration value allows clients to determine the new functionality added to the AFSearch based searches in this release.
- The AFGlobalSettingsTaskSchedulerForAsyncEmulation property enables a client to provide an implementation for asynchronous calls for data references that do not support them natively.
- The AFGlobalSettingsPIPointCacheUpdatePeriod property can be use by a client application to specify how often to refresh the cached PI Points.
The PISystemGetSessions(NullableAFTime, NullableAFTime, AFSortOrder, Int32, Int32) method returns the connection session information about clients connected to the server.
The following methods have been added to support the ability to check out or delete items in bulk:
- AFCategoryCheckOutCategories(PISystem, IListGuid, Object)
- AFCategoryDeleteCategories(PISystem, IListGuid)
- AFContactCheckOutContacts(PISystem, IListGuid, Object)
- AFContactDeleteContacts(PISystem, IListGuid)
- AFSecurityIdentityCheckOutSecurityIdentities(PISystem, IListGuid, Object)
- AFSecurityIdentityDeleteSecurityIdentities(PISystem, IListGuid)
- AFSecurityMappingCheckOutSecurityMappings(PISystem, IListGuid, Object)
- AFSecurityMappingDeleteSecurityMappings(PISystem, IListGuid)
OSIsoft.AF.Analysis Namespace
The AFAnalysisRuleSimplifiedConfigString and AFAnalysisRuleSimplifiedVariableMapping properties were added to support exporting simplified configuration strings that do not contain IDs.
The new AFAnalysisErrorSeveritySuspension enumeration value indicates if an analysis is in the suspended state.
The following methods have been added to support the ability to check out or delete items in bulk:
- AFAnalysisCheckOutAnalyses(PISystem, IListGuid, Object)
- AFAnalysisDeleteAnalyses(PISystem, IListGuid)
- AFAnalysisTemplateCheckOutAnalysisTemplates(PISystem, IListGuid, Object)
- AFAnalysisTemplateDeleteAnalysisTemplates(PISystem, IListGuid)
- AFCaseCheckOutCases(PISystem, IListGuid, Object)
- AFCaseDeleteCases(PISystem, IListGuid)
OSIsoft.AF.Asset Namespace
The following properties and methods have been added to support the ability to configure and attribute to specify the number of display digits to be shown in client applications:
- IAFAttributeDisplayDigits Property
- AFAttributeTemplateDisplayDigits Property
- AFAttributeDisplayDigits Property
- AFDataReferenceDisplayDigits Property
- AFValueDisplayValue Methods
Two new attribute traits were added: HealthStatus and HealthScore which belong to the AllHealth attribute trait group. The AFAttributeTraitGetRequiredEnumerationSet(AFDatabase) method was added to the attribute trait class to allow clients to obtain the required enumeration set for a trait. When this method is called for the new health status trait, it will create the HealthStatus enumeration set which is required by this trait if it is not already defined. The new AFHealthStatus enumeration can be used to access values from this enumeration set.
The AFAttributeValueQueryID type and AFElementGetAttributeValues(PISystem, IListAFAttributeValueQueryID, Object, Boolean, WindowsIdentity) method have been added to retrieve attribute values in bulk from a list of element and attribute IDs.
The following methods have been added to support the ability to check out or delete items in bulk:
- AFElementCheckOutElements(PISystem, IListGuid, Object)
- AFElementDeleteElements(PISystem, IListGuid)
- AFElementTemplateCheckOutElementTemplates(PISystem, IListGuid, Object)
- AFElementTemplateDeleteElementTemplates(PISystem, IListGuid)
- AFEnumerationSetCheckOutEnumerationSets(PISystem, IListGuid, Object)
- AFEnumerationSetDeleteEnumerationSets(PISystem, IListGuid)
- AFReferenceTypeCheckOutReferenceTypes(PISystem, IListGuid, Object)
- AFReferenceTypeDeleteReferenceTypes(PISystem, IListGuid)
- AFTableCheckOutTables(PISystem, IListGuid, Object)
- AFTableDeleteTables(PISystem, IListGuid)
- AFTableConnectionCheckOutTableConnections(PISystem, IListGuid, Object)
- AFTableConnectionDeleteTableConnections(PISystem, IListGuid)
OSIsoft.AF.Data Namespace
The AFDataPipeRangeDeletedEvent class is used to represent the removal of a range of data.
OSIsoft.AF.Diagnostics Namespace
The AFSession class was added to support returning connection session information from the server.
OSIsoft.AF.EventFrame Namespace
The AFEventFrameGetAttributeValues(PISystem, IListAFAttributeValueQueryID, Object, Boolean, WindowsIdentity) method has been added to retrieve attribute values in bulk from a list of event frame and attribute IDs.
The following methods have been added to support the ability to check out or delete items in bulk:
OSIsoft.AF.Notification Namespace
The following methods have been added to support the ability to check out or delete items in bulk:
- AFNotificationContactTemplateCheckOutNotificationContactTemplates(PISystem, IListGuid, Object)
- AFNotificationContactTemplateDeleteNotificationContactTemplates(PISystem, IListGuid)
- AFNotificationRuleCheckOutNotificationRules(PISystem, IListGuid, Object)
- AFNotificationRuleDeleteNotificationRules(PISystem, IListGuid)
- AFNotificationRuleTemplateCheckOutNotificationRuleTemplates(PISystem, IListGuid, Object)
- AFNotificationRuleTemplateDeleteNotificationRuleTemplates(PISystem, IListGuid)
OSIsoft.AF.PI Namespace
The PIPointFindPIPoints(PIServer, IEnumerableInt32, IEnumerableString) and PIPointFindPIPointsAsync(PIServer, IEnumerableInt32, IEnumerableString, CancellationToken) methods were added to find PIPoints in bulk from a list if IDs.
A change event can be checked if it was the result of a rename with the PIPointChangeInfoIsRenameEvent(String, String) method.
OSIsoft.AF.Search Namespace
The new AFSearchFilterID search filter has been added to allow searching for objects by their unique identifier.
Searching by attribute values no longer require that a template be specified. This means that the same attribute name can be queried across elements with different templates or no template specified. The following have been added to support this feature:
- The AFSearchValueType enumeration specifies the type of attribute value for a search token.
- The AFSearchTokenAFSearchToken(AFSearchOperator, String, String, String) constructor with the attribute's value type specified.
- The AFSearchTokenAFSearchToken(String, String, String) constructor with the attribute's path and value type specified.
- The ValueType property specifies the type of attribute value used in the search query.
OSIsoft.AF.Time Namespace
The AFTimeRuleSimplifiedConfigString property was added to support exporting simplified configuration strings that do not contain IDs.