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

AF SDK Reference

AFCase Class

  • Last UpdatedNov 18, 2025
  • 23 minute read
AFCase Class
The AFCase is used by an AFAnalysis to store the data results of an analysis.

Inheritance Hierarchy

SystemObject
  OSIsoft.AFAFObject
    OSIsoft.AF.AssetAFBaseElement
      OSIsoft.AF.EventFrameAFEventFrame
        OSIsoft.AF.AnalysisAFCase

Namespace:  OSIsoft.AF.Analysis
Assembly:  OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182

Syntax

[SerializableAttribute]
public sealed class AFCase : AFEventFrame, 
	IComparable<AFCase>, IAFTrace
<SerializableAttribute>
Public NotInheritable Class AFCase
	Inherits AFEventFrame
	Implements IComparable(Of AFCase), IAFTrace

Dim instance As AFCase
[SerializableAttribute]
public ref class AFCase sealed : public AFEventFrame, 
	IComparable<AFCase^>, IAFTrace
[<SealedAttribute>]
[<SerializableAttribute>]
type AFCase =  
    class
        inherit AFEventFrame
        interface IComparable<AFCase>
        interface IAFTrace
    end

The AFCase type exposes the following members.

Constructors

  NameDescription
Public method
AFCase(AFAnalysis)
Initializes a new instance of an AFCase with default values.
Public method
AFCase(AFAnalysis, AFElementTemplate)
Initializes a new instance of an AFCase with the specified AFElementTemplate.
Public method
AFCase(AFAnalysis, AFTime)
Initializes a new instance of an AFCase with the specified start time.
Public method
AFCase(AFAnalysis, AFTimeRuleEvent)
Initializes a new instance of an AFCase with its start and end times defined by an AFTimeRuleEvent.
Public method
AFCase(AFAnalysis, AFTime, AFElementTemplate)
Initializes a new instance of an AFCase with specified start time and AFElementTemplate.
Public method
AFCase(AFAnalysis, AFTime, AFTime)
Initializes a new instance of an AFCase with the specified start and end times.
Public method
AFCase(AFAnalysis, AFTimeRuleEvent, Boolean)
Initializes a new temporary instance of an AFCase with its start and end times defined by an AFTimeRuleEvent.
Public method
AFCase(AFAnalysis, AFTime, AFTime, AFElementTemplate)
Initializes a new instance of an AFCase with specified start and end times and AFElementTemplate.
Public method
AFCase(AFAnalysis, AFTime, AFTime, AFElementTemplate, Boolean)
Initializes a new temporary instance of an AFCase with specified start and end times and AFElementTemplate.

Properties

  NameDescription
Public property
AcknowledgedBy
This property indicates by whom the AFEventFrame was acknowledged.
(Inherited from AFEventFrame.)
Public property
AcknowledgedDate
This property indicates when the AFEventFrame was acknowledged.
(Inherited from AFEventFrame.)
Public property
AdditionalInfo
Additional information created by the time rule.
Public property
Analysis
The AFAnalysis which created this object.
(Inherited from AFEventFrame.)
Public property
AnalysisRule
The AFAnalysisRule from the AFAnalysis which created this object.
Public property
AreValuesCaptured
This property indicates whether the AFEventFrame has captured its AFAttribute values.
(Inherited from AFEventFrame.)
Public property
Attributes
This is a collection of attributes that are owned by this element.
(Inherited from AFBaseElement.)
Public property
CanBeAcknowledged
This property indicates whether the AFEventFrame can be acknowledged.
(Inherited from AFEventFrame.)
Public property
Categories
This is a user-defined collection of categories for the object that can be used for querying and/or reporting purposes.
(Inherited from AFBaseElement.)
Public property
CategoriesString
This read-only property returns the list of categories in a string separated by semicolons.
(Inherited from AFBaseElement.)
Public property
CheckOutInfo
This read-only property returns the checked out status information for the object.
Public property
CollectElementsTime
This read-only property returns the time that elements were last collected for the case analysis.
Public property
CollectInputsTime
This read-only property returns the time that input values were last read for the case analysis.
Public property
CollectTransfersTime
This read-only property returns the time that transfers were last collected for the case analysis.
Public property
Connections
This is a collection of connections between elements that are active for this case.
Public property
Database
This read-only property returns the AFDatabase where this object is defined.
(Inherited from AFBaseElement.)
Public property
DefaultAttribute
The default AFAttribute for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
DefaultInputPort
The default input AFPort for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
DefaultOutputPort
The default output AFPort for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
DefaultUndirectedPort
The default undirected AFPort for the AFBaseElement.
(Inherited from AFBaseElement.)
Public property
Description
Read/write property that provides a more detailed description of the object.
(Inherited from AFBaseElement.)
Public property
Duration
This is a read-only property which returns the period's StartTime and EndTime values as a time range.
(Inherited from AFEventFrame.)
Public property
Elements
Gets the collection of elements (including transfers) that are active for this case.
Public property
EndTime
This read-only property represents the end time of the period.
(Inherited from AFEventFrame.)
Public property
EventFrames
This is a collection of child event frames that have been added to this event frame.
(Inherited from AFEventFrame.)
Public property
ExtendedProperties
A dictionary of extended properties that can be used to store application specific information.
(Inherited from AFBaseElement.)
Public property
HasChildElements
This read-only property returns if the event frame has child elements.
(Inherited from AFEventFrame.)
Public property
HasChildEventFrames
This read-only property returns if the event frame has child event frames.
(Inherited from AFEventFrame.)
Public property
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.)
Public property
Identity
This read-only property contains identity of the object.
(Inherited from AFObject.)
Public property
IsAcknowledged
This property indicates whether the AFEventFrame has been acknowledged.
(Inherited from AFEventFrame.)
Public property
IsAnnotated
This property indicates whether this element has any annotations.
(Inherited from AFBaseElement.)
Public property
IsDeleted
This read-only property indicates whether the object has been deleted.
(Inherited from AFObject.)
Public property
IsDirty
This read-only property indicates whether the object has been modified since the last save to the PI AF Server.
Public property
IsLocked
This property indicates whether the AFEventFrame has been locked.
(Inherited from AFEventFrame.)
Public property
IsNew
This read-only property indicates whether the object is new and has never been saved to the PI AF Server.
Public property
IsPublished
This property indicates whether the results for the case, which was run, have been published to the locations specified by the attribute's data reference.
Public property
IsRoot
This property indicates if the AFEventFrame is a root object owned by the AFDatabase.
(Inherited from AFEventFrame.)
Public property
IsTemporary
This property indicates whether the AFEventFrame is temporary. A temporary AFEventFrame cannot be saved to the server.
(Inherited from AFEventFrame.)
Public property
Layers
This is a collection of AFLayers that keep track of the active layers within the model when a case analysis is run.
Public property
Model
This read-only property returns the AFModel that is the target of the AFAnalysis.
Public property
Name
Read/write property that identifies the name of the object.
(Inherited from AFBaseElement.)
Public property
Parent
This read-only property is returns the parent AFEventFrame that owns the event frame if it is referenced by another event frame.
(Inherited from AFEventFrame.)
Public property
Parents
This is a collection of all AFEventFrame objects that reference this event frame.
(Inherited from AFEventFrame.)
Public property
PISystem
This read-only property allows access to the PISystem associated with this object.
(Inherited from AFObject.)
Public property
Ports
This is a collection of AFPort objects representing the possible connection ports for this element. Ports are used in a AFModel to define an AFConnection between AFBaseElement object.
(Inherited from AFBaseElement.)
Public property
PreviousCase
This property returns the previous case to the current case used during the analysis.
Public property
PrimaryReferencedElement
The primary referenced AFElement associated with the event frame.
(Inherited from AFEventFrame.)
Public property
PublishTime
This read-only property returns the time that the case analysis was last published.
Public property
ReferencedElements
This is a collection of elements that are referenced by this event frame.
(Inherited from AFEventFrame.)
Public property
Results
This is a collection of AFResults that keep the result values for a case run.
Public property
RunTime
This read-only property returns the time that the case analysis was last executed.
Public property
Security
This read-only property returns the AFSecurity information for the object.
Public property
Severity
This is the severity level associated with the event.
(Inherited from AFEventFrame.)
Public property
StartTime
This read-only property represents the start time of the period.
(Inherited from AFEventFrame.)
Public property
Target
Gets and sets the target of this case that is used by the configured analysis rule.
Public property
Template
The AFElementTemplate that was used to define this object.
(Inherited from AFBaseElement.)
Public property
TimeRange
This is a read-only property which returns the period's StartTime and EndTime values as a time range.
(Inherited from AFEventFrame.)
Public property
Type
This read-only property specifies the base type of the element.
(Inherited from AFBaseElement.)
Public property
UniqueID
Read-only property that provides the object's ID as a String.
(Inherited from AFObject.)

Methods

  NameDescription
Public method
Acknowledge(String, NullableAFTime)
Acknowledges a single AFEventFrame.
(Inherited from AFEventFrame.)
Public method
AddInput(AFAttribute)
Adds an attribute and its value at the time of the case to the result set.
Public method
AddInput(AFAttribute, AFValue)
Adds an attribute and a specified AFValue to the result set.
Public method
AddInput(AFAttribute, AFValue, UOM) Obsolete.
Adds an attribute and a specified value to the result set.
Public method
AddInput(AFAttribute, Object, UOM)
Adds an attribute and a specified value to the result set.
Public methodCode example
ApplyChanges
This method applies the changes to the object and makes those changes available to other objects for the current user.
Public method
CaptureValues
Capture and cache the AFAttribute values with a AFDataReference using the default non-cached data provider.
(Inherited from AFEventFrame.)
Public method
CaptureValues(IAFDataProvider)
Capture and cache the AFAttribute values with a AFDataReference using the specified IAFDataProvider.
(Inherited from AFEventFrame.)
Public method
ChangeReferenceType
Change the existing AFReferenceType between a child event frame.
(Inherited from AFEventFrame.)
Public methodCode example
CheckIn
This method checks in (commits) all the changes to the object by saving the information to persistent storage.
Public method
CheckOut
This method locks the object so that its configuration can be modified.
Public methodStatic member
CheckOutCases
Check out the objects with the specified unique identifiers at the specified query date.
Public method
CollectElements
This method collects the elements that are active for this case.
Public method
CollectInputs
This method uses the AFAnalysisRule to obtain the input values necessary to start an analysis.
Public method
CollectInputs(AFCaseLog) Obsolete.
This method uses the AFAnalysisRule to obtain the input values necessary to start an analysis.
Public method
CollectTransfers
This method collects the transfers that are active for this case.
Public method
CompareTo(Object)
Compares this instance with a specified Object.
(Inherited from AFEventFrame.)
Public method
CompareTo(AFEventFrame)
Compares this instance with a specified AFEventFrame.
(Inherited from AFEventFrame.)
Public method
CompareTo(AFObject)
Compares this instance with a specified AFObject.
(Inherited from AFObject.)
Public method
CreateElementTemplate
Create an AFElementTemplate based upon the element.
(Inherited from AFBaseElement.)
Public method
CreateTemporary
This method creates a temporary case from the current case.
Public method
Delete
Deletes this event frame from the AFDatabase.
(Inherited from AFEventFrame.)
Public methodStatic member
DeleteCases
Delete the objects with the specified unique identifiers.
Public method
Equals(Object)
Determines whether the specified Object is equal to the current object.
(Inherited from AFEventFrame.)
Public method
Equals(AFEventFrame)
Indicates whether the current object is equal to another object of the same type.
(Inherited from AFEventFrame.)
Public method
Equals(AFObject)
Indicates whether the current object is equal to another object of the same type.
(Inherited from AFObject.)
Public methodStatic member
FindCase(PISystem, Guid)
Retrieves the AFCase object with the specified unique identifier at the AFTime.MaxValue query date.
Public methodStatic member
FindCase(PISystem, Guid, Object)
Retrieves the AFCase object with the specified unique identifier at the specified query date.
Public methodStatic member
FindCases(PISystem, Guid, Object)
Performs a search within the PISystem to retrieve a collection of AFCase objects with the specified list of unique identifiers.
Public methodStatic member
FindCases(AFAnalysis, String, AFSearchField, AFSortField, AFSortOrder, Int32)
Performs a text search within the AFDatabase to retrieve a collection of AFCase objects that match the specified query string.
Public methodStatic member
FindCases(AFAnalysis, Object, Int32, AFEventFrameSearchMode, String, AFCategory, AFElementTemplate)
Retrieves a list of AFCase objects limited to the specified count beginning at the requested time in the specified direction.
Public methodStatic member
FindCases(AFAnalysis, Object, Int32, Boolean, String, AFCategory, AFElementTemplate) Obsolete.
Retrieves a list of AFCase objects limited to the specified count beginning at the requested start time in the specified direction.
Public methodStatic member
FindCases(AFAnalysis, AFSearchMode, Object, Object, String, AFCategory, AFElementTemplate, AFSortField, AFSortOrder, Int32) Obsolete.
Retrieves a list of AFCase objects that match the specified filtering conditions.
Public method
GetAdjustments
This method returns a collection of AFAdjustment objects for all the Results within the AFCase.
Public method
GetAnnotations
Retrieves a collection of existing AFAnnotation objects belonging to this AFBaseElement.
(Inherited from AFBaseElement.)
Public method
GetAttributeByTrait
Retrieves the child AFAttribute with the specified AFAttributeTrait.
(Inherited from AFBaseElement.)
Public method
GetAttributesByTrait
Retrieves a list of child AFAttribute objects identified by the specified list of attribute traits.
(Inherited from AFBaseElement.)
Public method
GetConnectedElements(AFBaseElement)
This method returns a collection of AFBaseElement objects which are connected to the specified element (or child element) within the case.
Public method
GetConnectedElements(AFBaseElement, AFPortType)
This method returns a collection of AFBaseElement objects which are connected to the specified element (or child element) through a port of the specified type within the case.
Public method
GetConnectedElements(AFBaseElement, String)
This method returns a collection of AFBaseElement objects which are connected to the specified element and port within the case.
Public method
GetConnections(AFBaseElement)
This method returns a collection of AFConnection objects representing a connection between the specified element (or child element) and another element within the case.
Public method
GetConnections(AFBaseElement, AFPortType)
This method returns a collection of AFConnection objects with the specified port type representing a connection between the specified element (or child element) and another element within the case.
Public method
GetConnections(AFBaseElement, String)
This method returns a collection of AFConnection objects with the specified port name representing a connection between the specified element and another element within the case.
Public method
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 AFEventFrame.)
Public method
GetLayers
This method returns a collection of AFLayer objects for the specified element representing all the active layers of the case which contain the element.
Public method
GetParents(AFCategory)
Retrieves a collection of AFEventFrame objects that reference this event frame using the specified AFCategory.
(Inherited from AFEventFrame.)
Public method
GetParents(AFReferenceType)
Retrieves a collection of AFEventFrame objects that reference this event frame using the specified AFReferenceType.
(Inherited from AFEventFrame.)
Public method
GetPath
Returns the full path to the object, using just the names.
(Inherited from AFObject.)
Public method
GetPath(AFObject)
Returns the path to the object relative from another object.
(Inherited from AFObject.)
Public method
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.)
Public method
GetPaths
Get all the relative paths to this AFEventFrame.
(Inherited from AFEventFrame.)
Public method
GetReferenceTypes
Retrieves a collection of all AFReferenceType objects that represent types of references from this event frame to its child event frames.
(Inherited from AFEventFrame.)
Public method
GetReferenceTypes(AFEventFrame)
Retrieves a collection of AFReferenceType objects that represent types of references between this event frame and the specified related event frame.
(Inherited from AFEventFrame.)
Public method
GetResult
This method gets the result for the specified attribute.
Public method
GetSecurity
Gets the AFSecurity information of the specified security item associated with the object.
Public method
GetType
Gets the Type of the current instance.
(Inherited from Object.)
Public method
IsActiveElement
Determines if the specified AFElement is active within the case.
Public method
IsActiveTransfer
Determines if the specified AFTransfer is active within the case.
Public method
IsTraced
Indicates if a specified level is being traced.
Public method
IsTypeOf
Checks if the current AFBaseElement is derived from the specified AFElementTemplate.
(Inherited from AFBaseElement.)
Public methodStatic member
LoadCases(IListAFCase)
Loads the specified list AFCase objects.
Public methodStatic member
LoadCases(PISystem, Guid, Object)
Loads the AFCase objects with the specified unique identifiers. at the specified query date.
Public method
Lock
Locks this event frame so that no further changes can be made.
(Inherited from AFEventFrame.)
Public method
Persist
This method returns the persistence string for the object.
(Inherited from AFObject.)
Public method
Publish
The output AFAttribute values of the analysis case run are published to the locations specified by the attribute's data reference configuration.
Public method
PublishValue(AFAttribute, AFValue)
Write the specified value of the AFAttribute directly to the data reference source using the specified AFValue object.
Public method
PublishValue(AFAttribute, Object, UOM)
Write the specified value of the AFAttribute directly to the data reference source with the specified unit-of-measure at the case's EndTime.
Public method
Refresh
Refreshes the client with any changes that have been made to the object since loaded.
Public method
Reset(AFAttribute)
This method resets an attribute in an analysis case.
Public method
Reset(AFResult)
This method resets an attribute for the specified AFResult in an analysis case.
Public method
Reset(Boolean, Boolean)
This method resets the input and/or output results generated in an analysis case.
Public method
Reset(Boolean, Boolean, AFAttribute) Obsolete.
This method resets the results generated in an analysis case.
Public method
Run
This method uses the AFAnalysisRule to execute the analysis and generate analysis results.
Public method
Run(AFCaseLog) Obsolete.
This method uses the AFAnalysisRule to execute the analysis and generate analysis results.
Public method
SetEndTime
Set the time that represents the time that the period ended.
(Inherited from AFEventFrame.)
Public method
SetStartTime
Set the time that represents the time that the period started.
(Overrides AFEventFrameSetStartTime(Object).)
Public method
ToString
Returns a String that represents the current object.
(Overrides AFObjectToString.)
Public method
TraceData
Output a data trace event.
Public method
TraceDetail
Output a detail trace event.
Public method
TraceError
Output an error trace event.
Public method
TraceEvent(AFTraceSwitchLevel, String)
Output a trace event with a message.
Public method
TraceEvent(AFTraceSwitchLevel, String, Int32)
Output a trace event with a message and a duration.
Public method
TraceEvent(AFTraceSwitchLevel, String, Object)
Output a trace event as a formatted message with a variable number of arguments.
Public method
TraceInformation
Output an information trace event.
Public method
TraceSummary
Output a summary trace event.
Public method
TraceWarning
Output a warning trace event.
Public method
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.
Public method
Unlock
Unlocks a locked event frame so that further changes can be made.
(Inherited from AFEventFrame.)

Events

  NameDescription
Public eventCode example
After
Occurs after an AFCase method specified in the AFCaseAction enumeration has been called.
Public eventCode example
Before
Occurs before an AFCase method specified in the AFCaseAction enumeration has been called.
Public eventCode example
Changed
Event is raised when the object or one of its sub-objects is changed.
Public eventCode example
Executing
Occurs during the execution of an AFCase method specified in the AFCaseAction enumeration.

Remarks

The default time rule used to generate the case and the analysis rule used to execute the analysis is obtained from the AFAnalysis that owns the case. Besides the ID for the case, the StartTime, EndTime, and RunTime values uniquely define an instance of an AFCase object. The AFCaseSearch class can be used for finding cases.

See Model Analysis Execution for more detailed information about how analyses are executed.

Examples

// This example demonstrates how to create and run a case.
// Note: This example assumes that there is a database called "Chocolate Milk Tutorial"
// containing a Model named "ChocolateMilkModel", with a Model Analysis
// named "Volume Balance"

// Get the Database
PISystems myPISystems = new PISystems();
AFDatabase myDB = myPISystems.DefaultPISystem.Databases["Chocolate Milk Tutorial"];

// Get the Model Analysis
AFAnalysis myAnalysis = AFAnalysis.FindAnalyses(myDB, "ChocolateMilkModel::Volume Balance",
    AFSearchField.Name, AFSortField.Name, AFSortOrder.Ascending, 1)[0];

// Create the Case
AFCase myCase = myAnalysis.AddCase();
myCase.SetStartTime(System.DateTime.UtcNow.AddHours(-1));
myCase.SetEndTime(System.DateTime.UtcNow);

// Run the Case and Capture Messages Using Custom TraceListener
// See AFTrace example for MyTraceListener
int msgCount = 0;
using (MyTraceListener listener = new MyTraceListener())
{
    myAnalysis.Run(myCase);

    foreach (string message in listener.GetMessages())
    {
        Console.WriteLine(message);
        msgCount++;
    }
    Console.WriteLine("Finished Running Case\n");
}

// Display Case Information
Console.WriteLine("Analysis Name = {0}", myCase.Analysis.Name);
Console.WriteLine("Case Start Time = {0}", myCase.StartTime.LocalTime);
Console.WriteLine("Case End Time = {0}", myCase.EndTime.LocalTime);
' This example demonstrates how to create and run a case.
' Note: This example assumes that there is a database called "Chocolate Milk Tutorial"
' containing a Model named "ChocolateMilkModel", with a Model Analysis
' named "Volume Balance"

' Get the Database
Dim myPISystems As New PISystems
Dim myDB As AFDatabase = myPISystems.DefaultPISystem.Databases("Chocolate Milk Tutorial")

' Get the Model Analysis
Dim myAnalysis As AFAnalysis = AFAnalysis.FindAnalyses(myDB, "ChocolateMilkModel::Volume Balance",
    AFSearchField.Name, AFSortField.Name, AFSortOrder.Descending, 1)(0)

' Create the Case.
Dim myCase As AFCase = myAnalysis.AddCase()
myCase.SetStartTime(System.DateTime.UtcNow.AddHours(-1))
myCase.SetEndTime(System.DateTime.UtcNow)

' Run the Case
Dim msgCount As Integer = 0
Dim listener As MyTraceListener = New MyTraceListener
Try
    myAnalysis.Run(myCase)
    For Each message As String In listener.GetMessages
        Console.WriteLine(message)
        msgCount += 1
    Next
    Console.WriteLine("Finished Running Case" & vbLf)
Finally
    listener.Dispose()
End Try

' Display Case Information
Console.WriteLine("Analysis Name = {0}", myCase.Analysis.Name)
Console.WriteLine("Case Start Time = {0}", myCase.StartTime.LocalTime)
Console.WriteLine("Case End Time = {0}", myCase.EndTime.LocalTime)

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.

Version Information

AFSDK


See Also

TitleResults for “How to create a CRG?”Also Available in