AFAnalysis Class
- Last UpdatedNov 18, 2025
- 18 minute read
- PI System
- AF SDK 2024 R2
- Developer

Inheritance Hierarchy
Namespace: OSIsoft.AF.Analysis
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182
Syntax
[SerializableAttribute] public class AFAnalysis : AFObject, IAFTransactable, IAFChangedEvent, IAFSecurable, IComparable<AFAnalysis>, IAFTrace
<SerializableAttribute> Public Class AFAnalysis Inherits AFObject Implements IAFTransactable, IAFChangedEvent, IAFSecurable, IComparable(Of AFAnalysis), IAFTrace Dim instance As AFAnalysis
[SerializableAttribute] public ref class AFAnalysis : public AFObject, IAFTransactable, IAFChangedEvent, IAFSecurable, IComparable<AFAnalysis^>, IAFTrace
[<SerializableAttribute>] type AFAnalysis = class inherit AFObject interface IAFTransactable interface IAFChangedEvent interface IAFSecurable interface IComparable<AFAnalysis> interface IAFTrace end
The AFAnalysis type exposes the following members.
Constructors
| Name | Description | |
|---|---|---|
| AFAnalysis | Obsolete.
Initializes a new instance of the class with default values.
| |
| AFAnalysis(String) | Obsolete.
Initializes a new instance of the class with the specified name.
| |
| AFAnalysis(AFDatabase) |
Initializes a new instance of the class with default values.
| |
| AFAnalysis(String, AFAnalysisTemplate) | Obsolete.
Initializes a new instance of the class with the specified name.
| |
| AFAnalysis(AFDatabase, String) |
Initializes a new instance of the class with the specified name.
| |
| AFAnalysis(AFDatabase, String, AFAnalysisTemplate) |
Initializes a new instance of the class with the specified name.
|
Properties
| Name | Description | |
|---|---|---|
| AnalysisRule |
The instance of the analysis rule used by the AFAnalysis to
run the analysis.
| |
| AnalysisRulePlugIn |
The analysis rule plugin property is used to specify which
analysis rule will be used by the AFAnalysis to run the analysis.
| |
| AutoCreated |
This read-only property indicates if this analysis was automatically created by the server.
| |
| CaseTemplate |
The AFElementTemplate that is used when creating a new AFCase
using one of the AddCase Overload methods.
| |
| Categories |
This is a user-defined collection of categories for the object that can be used for
querying and/or reporting purposes.
| |
| CategoriesString |
This read-only property returns the list of categories in a string separated by semicolons.
| |
| CheckOutInfo |
This read-only property returns the checked out status information for the object.
| |
| Database |
This read-only property returns the AFDatabase where this object is defined.
| |
| Description |
Read/write property that provides a more detailed description of the object.
| |
| ExtendedProperties |
A dictionary of extended properties that can be used to store application specific information.
| |
| GroupID |
Indicates the group identifier for the analysis.
| |
| HasNotification |
This read-only property indicates if there is an AFNotification
associated with this analysis.
| |
| HasTarget |
This read-only property indicates if there is a target
associated with this analysis.
| |
| HasTemplate |
This read-only property indicates if this analysis is defined by an AFAnalysisTemplate.
| |
| ID |
Read-only property that provides a unique identifier for the object to be used for
quick access that is not dependent upon the index.
(Inherited from AFObject.) | |
| Identity |
This read-only property contains identity of the object.
(Inherited from AFObject.) | |
| IsConfigured |
This method returns if the analysis rule instance is properly configured.
| |
| IsDeleted |
This read-only property indicates whether the object has been deleted.
(Inherited from AFObject.) | |
| IsDirty |
This read-only property indicates whether the object has been modified since the
last save to the PI AF Server.
| |
| IsNew |
This read-only property indicates whether the object is new and has never been saved
to the PI AF Server.
| |
| IsTimeRuleDefinedByTemplate |
This read-only property indicates if the TimeRule is fully
defined by the AFAnalysisTemplate.
| |
| MaximumQueueSize |
The maximum queue size for the analysis.
| |
| Name |
This property defines the name that identifies the object.
| |
| Notification |
This property returns the AFNotification that is associated with
this AFAnalysis.
| |
| OutputTime |
The analysis output time offset.
| |
| PISystem |
This read-only property allows access to the PISystem associated with this
object.
(Inherited from AFObject.) | |
| Priority |
The priority of the analysis.
| |
| PublishResults |
This property indicates if the case results should automatically be published after
an analysis is run.
| |
| Security |
This read-only property returns the AFSecurity information for the object.
| |
| Status |
The current analysis status.
| |
| Target |
Gets and sets the target of the analysis.
| |
| Template |
This property returns the AFAnalysisTemplate
that was used to create this AFAnalysis.
| |
| TimeRule |
The instance of the time rule used by the AFAnalysis to
determine when the next analysis should be run.
| |
| TimeRulePlugIn |
The time rule plugin property is used to specify which
time rule will be used by the AFAnalysis to determine when the
analysis runs.
| |
| UniqueID |
Read-only property that provides the object's ID as a String.
(Inherited from AFObject.) |
Methods
| Name | Description | |
|---|---|---|
| AddCase | ||
| AddCase(AFTime) |
The AddCase method creates a new AFCase
for the analysis after the specified start time.
| |
| AddCase(AFTimeRuleEvent) |
The AddCase method creates a new AFCase
for the analysis after the specified AFTimeRuleEvent.
| |
| ApplyChanges |
This method applies the changes to the object and makes
those changes available to other objects for the current user.
| |
| CheckIn |
This method checks in (commits) all the changes to the object by saving
the information to persistent storage.
| |
| CheckOut |
This method locks the object so that its configuration can be modified.
| |
| CheckOutAnalyses |
Check out the objects with the specified unique identifiers at the specified query date.
| |
| CompareTo(Object) |
Compares this instance with a specified Object.
(Inherited from AFObject.) | |
| CompareTo(AFObject) |
Compares this instance with a specified AFObject.
(Inherited from AFObject.) | |
| CreateAnalysisTemplate |
Create an AFAnalysisTemplate based upon the analysis.
| |
| Delete |
Deletes this analysis from the AFDatabase.
| |
| DeleteAnalyses |
Delete the objects with the specified unique identifiers.
| |
| Equals(Object) |
Determines whether the specified Object is equal to the current object.
(Inherited from AFObject.) | |
| Equals(AFObject) |
Indicates whether the current object is equal to another object of the same type.
(Inherited from AFObject.) | |
| FindAnalyses(PISystem, Guid, Object) |
Performs a search within the PISystem to retrieve a collection
of AFAnalysis objects with the specified list of unique identifiers.
| |
| FindAnalyses(AFObject, AFSortField, AFSortOrder, Int32) | Obsolete.
Performs a non-paged search within the AFDatabase to retrieve a collection
of AFAnalysis objects with the specified target.
| |
| FindAnalyses(AFDatabase, String, AFSearchField, AFSortField, AFSortOrder, Int32) |
Performs a non-paged text search within the AFDatabase to retrieve a collection
of AFAnalysis objects which have a field that match the specified query string.
| |
| FindAnalyses(AFObject, AFSortField, AFSortOrder, Int32, Int32, Int32) | Obsolete.
Performs a paged search within the AFDatabase to retrieve a collection
of AFAnalysis objects with the specified target.
| |
| FindAnalyses(AFDatabase, String, AFSearchField, AFSortField, AFSortOrder, Int32, Int32, Int32) |
Performs a paged search within the AFDatabase to retrieve a collection
of AFAnalysis objects which have a field that match the specified query string.
| |
| FindAnalyses(AFDatabase, String, String, NullableInt16, AFCategory, AFAnalysisTemplate, AFElement, AFStatus, AFSortField, AFSortOrder, Int32, Int32) | Obsolete.
Performs a paged search within the AFDatabase to retrieve a collection
of AFAnalysis objects that match the specified query strings and
additional filters.
| |
| FindAnalysesByGroupID(AFDatabase, Int16, AFSortField, AFSortOrder, Int32) | Obsolete.
Performs a non-paged search within the AFDatabase to retrieve a collection
of AFAnalysis objects with the specified group identifier.
| |
| FindAnalysesByGroupID(PISystem, Int16, AFSortField, AFSortOrder, Int32) | Obsolete.
Performs a non-paged search to retrieve a collection of all AFAnalysis objects
in the specified PISystem with the specified group identifier.
| |
| FindAnalysesByGroupID(AFDatabase, Int16, AFSortField, AFSortOrder, Int32, Int32, Int32) | Obsolete.
Performs a paged search within the AFDatabase to retrieve a collection
of AFAnalysis objects with the specified group identifier.
| |
| FindAnalysesByGroupID(PISystem, Int16, AFSortField, AFSortOrder, Int32, Int32, Int32) | Obsolete.
Performs a paged search to retrieve a collection of all AFAnalysis objects
in the specified PISystem with the specified group identifier.
| |
| FindAnalysesByTemplate(AFDatabase, AFAnalysisTemplate, AFSortField, AFSortOrder, Int32, Int32) | Obsolete.
Retrieves a paged collection of AFAnalysis objects that are instantiated from the specified
AFAnalysisTemplate without returning the total count.
| |
| FindAnalysesByTemplate(AFDatabase, AFAnalysisTemplate, AFSortField, AFSortOrder, Int32, Int32, Int32) | Obsolete.
Retrieves a paged collection of AFAnalysis objects that are instantiated from the specified
AFAnalysisTemplate.
| |
| FindAnalysis(PISystem, Guid) |
Retrieves the AFAnalysis object with the specified unique identifier
at the AFTime.MaxValue query date.
| |
| FindAnalysis(PISystem, Guid, Object) |
Retrieves the AFAnalysis object with the specified unique identifier
at the specified query date.
| |
| FindAnalysisGroupIDs | ||
| GetCounts(AFDatabase) |
Get the number of analyses for each status.
| |
| GetCountsT(AFDatabase) |
Get the number of analyses for each filter.
| |
| GetHashCode |
Gets the hash code for this instance of the object which is suitable for use in hashing
algorithms and data structures like a hash table.
(Inherited from AFObject.) | |
| GetLastCase |
Use this method to get the case with the latest start time for the analysis.
| |
| GetPath |
Returns the full path to the object, using just the names.
(Inherited from AFObject.) | |
| GetPath(AFObject) |
Returns the path to the object relative from another object.
(Inherited from AFObject.) | |
| GetPath(AFEncodeType, AFObject) |
Returns the path to the object relative from another object,
using the name and/or id as specified
by encodeType.
(Inherited from AFObject.) | |
| GetResults(Object, Int32, Boolean, AFAttribute, UOM) |
Use this method to get all the stored results for the attribute
of cases of the analysis limited to the specified
count beginning at the requested start time in the specified direction.
| |
| GetResults(AFSearchMode, Object, Object, Double, AFAttribute, UOM) | Obsolete.
Use this method to get all the stored results for the attribute
of cases of the analysis based upon the specified search criteria.
| |
| GetResults(AFSearchMode, Object, Object, Int32, AFAttribute, UOM) |
Use this method to get all the stored results for the attribute
of cases of the analysis between the specified start and
end times.
| |
| GetSecurity |
Gets the AFSecurity information of the specified security item
associated with the object.
| |
| GetStatus |
Get the analysis Status property immediately from the PI AF Server.
| |
| GetStatus(IListAFAnalysis) |
Get the status for the list of specified analyses from the PI AF Server.
| |
| GetType | Gets the Type of the current instance. (Inherited from Object.) | |
| IsTraced |
Indicates if a specified level is being traced.
| |
| LoadAnalyses(IListAFAnalysis) |
Loads the specified list AFAnalysis objects.
| |
| LoadAnalyses(PISystem, Guid, Object) |
Loads the AFAnalysis objects with the specified unique identifiers
at the specified query date.
| |
| LoadTargets |
Loads the Target of the specified list of AFAnalysis objects.
| |
| Persist |
This method returns the persistence string for the object.
(Inherited from AFObject.) | |
| Refresh |
Refreshes the client with any changes that have been made to the object since loaded.
| |
| RemoveCase |
Removes an existing AFCase from the analysis.
| |
| ResetToTemplate |
This method will reset the AFAnalysis back to its template default values.
| |
| Run |
Execute the analysis with default values.
| |
| Run(AFCase) |
Execute the analysis for the specific AFCase.
| |
| SetStatus(AFStatus) |
Set the analysis Status property immediately in the server.
| |
| SetStatus(IListAFAnalysis, AFStatus) |
Set the list of analyses to the specified status.
| |
| SetStatus(AFDatabase, AFObject, AFStatus, AFStatus) |
Sets all the analyses based upon a filter object to the specified status.
| |
| ToString |
Returns a String that represents the current object.
(Inherited from AFObject.) | |
| TraceData |
Output a data trace event.
| |
| TraceDetail |
Output a detail trace event.
| |
| TraceError |
Output an error trace event.
| |
| TraceEvent(AFTraceSwitchLevel, String) |
Output a trace event with a message.
| |
| TraceEvent(AFTraceSwitchLevel, String, Int32) |
Output a trace event with a message and a duration.
| |
| TraceEvent(AFTraceSwitchLevel, String, Object) |
Output a trace event as a formatted message with a variable number of arguments.
| |
| TraceInformation |
Output an information trace event.
| |
| TraceSummary |
Output a summary trace event.
| |
| TraceWarning |
Output a warning trace event.
| |
| UndoCheckOut |
This method discards all the changes to the object and all sub-objects since the
last call to CheckOut. Any changes since the check out will be lost.
|
Events
| Name | Description | |
|---|---|---|
| Changed |
Event is raised when the object or one of its sub-objects is changed.
|
Remarks
The AFAnalysis uses the configured TimeRule to determine when the next analysis should be executed and the configured AnalysisRule provide the logic to execute the analysis on a set of data values for a Target. See Analysis Execution for more detailed information about how analyses are executed. The AFAnalysisSearch class can be used for finding analyses.
Use the PISystem.Supports method to check if the PISystem supports the Analysis feature.
| When removing an AFAnalysisTemplate, any AFAnalysis created from the template will be deleted unless it is tied to an AFNotification. |
Examples
// This example demonstrates how to create a model analysis and configure // its analysis rule and time rule. // Get the Database PISystems myPISystems = new PISystems(); PISystem myPISystem = myPISystems.DefaultPISystem; AFDatabase myDB = myPISystem.Databases.DefaultDatabase; // Create an Element with an Attribute AFElement myElement = myDB.Elements.Add("MyElement"); AFAttribute myAttribute = myElement.Attributes.Add("MyAttribute"); myAttribute.DataReferencePlugIn = AFDataReference.GetPIPointDataReference(myPISystem); myAttribute.DataReference.ConfigString = @"\\%Server%\sinusoid"; // Create an Analysis and set its Target to the Element AFAnalysis myAnalysis = new AFAnalysis(myDB, "MyAnalysis"); myAnalysis.Description = "This is an analysis example"; myAnalysis.Target = myElement; // Set the Analysis Rule and Time Rule myAnalysis.AnalysisRulePlugIn = myPISystem.AnalysisRulePlugIns["Imbalance"]; myAnalysis.TimeRulePlugIn = myPISystem.TimeRulePlugIns["Periodic"]; myAnalysis.AnalysisRule.ConfigString = "Balance=Volume;Imbalance=Volume Imbalance;UOM=US gal"; myAnalysis.TimeRule.ConfigString = "Frequency=3600"; // Display the Name, Description, and Target Console.WriteLine("Name = {0}", myAnalysis.Name); Console.WriteLine("Description = {0}", myAnalysis.Description); Console.WriteLine("Target = {0}", myAnalysis.Target);
' This example demonstrates how to create a model analysis And configure ' its analysis rule and time rule. ' Get the Database Dim myPISystems As New PISystems Dim myPISystem As PISystem = myPISystems.DefaultPISystem Dim myDB As AFDatabase = myPISystem.Databases.DefaultDatabase ' Create an Element with an Attribute Dim myElement As AFElement = myDB.Elements.Add("MyElement") Dim myAttribute As AFAttribute = myElement.Attributes.Add("MyAttribute") myAttribute.DataReferencePlugIn = AFDataReference.GetPIPointDataReference(myPISystem) myAttribute.DataReference.ConfigString = "\\%Server%\sinusoid" ' Create an Analysis and set its Target to the Element Dim myAnalysis As New AFAnalysis(myDB, "MyAnalysis") myAnalysis.Description = "This is an analysis example" myAnalysis.Target = myElement ' Set the Analysis Rule and Time Rule myAnalysis.AnalysisRulePlugIn = myPISystem.AnalysisRulePlugIns("Imbalance") myAnalysis.TimeRulePlugIn = myPISystem.TimeRulePlugIns("Periodic") myAnalysis.AnalysisRule.ConfigString = "Balance=Volume;Imbalance=Volume Imbalance;UOM=US gal" myAnalysis.TimeRule.ConfigString = "Frequency=3600" ' Display the Name, Description, and Target Console.WriteLine("Name = {0}", myAnalysis.Name) Console.WriteLine("Description = {0}", myAnalysis.Description) Console.WriteLine("Target = {0}", myAnalysis.Target)
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.