AFAnalysis.GetCounts Method (AFDatabase)
- Last UpdatedJan 12, 2026
- 3 minute read
- PI System
- AF SDK 3.2.0
- Developer
Get the number of analyses for each status.
Namespace: OSIsoft.AF.Analysis
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.2.0.7
Syntax
public static IList<KeyValuePair<AFStatus, int>> GetCounts( AFDatabase database )
Public Shared Function GetCounts ( database As AFDatabase ) As IList(Of KeyValuePair(Of AFStatus, Integer)) Dim database As AFDatabase Dim returnValue As IList(Of KeyValuePair(Of AFStatus, Integer)) returnValue = AFAnalysis.GetCounts(database)
public: static IList<KeyValuePair<AFStatus, int>>^ GetCounts( AFDatabase^ database )
static member GetCounts : database : AFDatabase -> IList<KeyValuePair<AFStatus, int>>
Parameters
- database
- Type: OSIsoft.AFAFDatabase
The database to search for analysis counts by status.
Return Value
Type: IListKeyValuePairAFStatus, Int32Returns a list of KeyValuePairTKey, TValue items where the key is the analysis's AFStatus and the value is the number of analyses with that status.
Remarks
This method will make one call to the server to get the number of analyses
for each status.
Examples
// This example demonstrates how to call the GetCounts method to return // the number of analyses based upon different filters. // Get the Database PISystems myPISystems = new PISystems(); PISystem myPISystem = myPISystems.DefaultPISystem; AFDatabase myDB = myPISystem.Databases.DefaultDatabase; // Create some filter objects AFCategory myCategory1 = myDB.AnalysisCategories.Add("MyCategory#1"); AFCategory myCategory2 = myDB.AnalysisCategories.Add("MyCategory#2"); AFAnalysisTemplate myTemplate = myDB.AnalysisTemplates.Add("MyTemplate#1"); myTemplate.Categories.Add(myCategory1); // Create some Analyses AFAnalysis myAnalysis0 = new AFAnalysis(myDB, "MyAnalysis#0"); myAnalysis0.Description = "This is the analysis with no categories or template"; myAnalysis0.SetStatus(AFStatus.Enabled); AFAnalysis myAnalysis1 = new AFAnalysis(myDB, "MyAnalysis#1", myTemplate); myAnalysis1.Description = "This is the first analysis example"; myAnalysis1.Categories.Add(myCategory2); myAnalysis1.SetStatus(AFStatus.Enabled); AFAnalysis myAnalysis2 = new AFAnalysis(myDB, "MyAnalysis#2"); myAnalysis2.Description = "This is the second analysis example"; myAnalysis2.Categories.Add(myCategory2); myAnalysis2.SetStatus(AFStatus.NotReady); myDB.CheckIn(); // Get analysis counts by Status and display results IList<KeyValuePair<AFStatus, int>> statusCounts = AFAnalysis.GetCounts(myDB); foreach (var item in statusCounts) { Console.WriteLine("{0} = {1}", item.Key, item.Value); } // Get analysis counts by Category and display results IList<KeyValuePair<AFCategory, int>> catCounts = AFAnalysis.GetCounts<AFCategory>(myDB); foreach (var item in catCounts) { Console.WriteLine("{0} = {1}", item.Key, item.Value); } // Get analysis counts by Template and display results IList<KeyValuePair<AFAnalysisTemplate, int>> tmplCounts = AFAnalysis.GetCounts<AFAnalysisTemplate>(myDB); foreach (var item in tmplCounts) { Console.WriteLine("{0} = {1}", item.Key, item.Value); }