PIPoint.UnloadAllAttributes Method
- Last UpdatedJan 12, 2026
- 3 minute read
- PI System
- AF SDK 3.2.0
- Developer
Unload all PIPoint attributes from the cache except for the specified names.
Namespace: OSIsoft.AF.PI
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.2.0.7
Syntax
public void UnloadAllAttributes( params string[] exceptNames )
Public Sub UnloadAllAttributes ( ParamArray exceptNames As String() ) Dim instance As PIPoint Dim exceptNames As String() instance.UnloadAllAttributes(exceptNames)
public: void UnloadAllAttributes( ... array<String^>^ exceptNames )
member UnloadAllAttributes : exceptNames : string[] -> unit
Parameters
- exceptNames
- Type: SystemString
The list of attribute names not to unload. If or an empty list, then all attributes will be unloaded. The PICommonPointAttributes class contains some of the common PIPoint attribute names.
Remarks
All PIPoint attribute are unloaded from the client's cache except for the
specified list of attributes not to unload.
This method is used to free memory when PIPoint attributes are
no longer needed, but the PIPoint is still being used.
Note that ID, Name, PointType, Step, and Future
attributes are not unloaded from the cache.
Examples
// This example demonstrates how to create an attribute for an // element and retrieve and set PIPoint attributes. // Get the Database PISystems myPISystems = new PISystems(); PISystem myPISystem = myPISystems.DefaultPISystem; AFDatabase myDB = myPISystem.Databases.DefaultDatabase; // Create an Element Template AFElementTemplate myElemTemplate = myDB.ElementTemplates.Add("MyElementTemplate"); AFAttributeTemplate myAttrTemplate = myElemTemplate.AttributeTemplates.Add("Attr#1"); myAttrTemplate.DataReferencePlugIn = AFDataReference.GetPIPointDataReference(myPISystem); myAttrTemplate.ConfigString = @"\\%Server%\%Element%;pointtype=Float64"; // Create an Element from the Element Template AFElement myElement = myDB.Elements.Add("MyElement", myElemTemplate); // Create the PIPoint for the Attribute AFAttribute myAttribute = myElement.Attributes["Attr#1"]; myAttribute.DataReference.CreateConfig(); // Find all PIPoint Attributes and Display their values object drAttrValue; myAttribute.PIPoint.LoadAttributes(); IEnumerable<string> list = myAttribute.PIPoint.FindAttributeNames(null); Console.WriteLine("Found PIPoint Attributes: nameFilter='<null>'"); foreach (string item in list) { drAttrValue = myAttribute.PIPoint.GetAttribute(item); Console.WriteLine(" {0} = '{1}'", item, drAttrValue); } Console.WriteLine(); // Find PIPoint Attributes matching 'Ex*' and display their values list = myAttribute.PIPoint.FindAttributeNames("Ex*"); Console.WriteLine("Found PIPoint Attributes: nameFilter='Ex*'"); int cnt = 0; foreach (string item in list) { cnt++; drAttrValue = myAttribute.PIPoint.GetAttribute(item); Console.WriteLine(" {0} = '{1}'", item, drAttrValue); } Console.WriteLine(); // Unload all PIPoint Attributes myAttribute.PIPoint.UnloadAllAttributes(); // Load specific PIPoint Attributes and display their values myAttribute.PIPoint.LoadAttributes(PICommonPointAttributes.PointType, PICommonPointAttributes.PointID, PICommonPointAttributes.Descriptor, PICommonPointAttributes.ExtendedDescriptor, PICommonPointAttributes.CreationDate); drAttrValue = myAttribute.PIPoint.GetAttribute(PICommonPointAttributes.PointType); Console.WriteLine("PIPoint Attribute '{0}' = '{1}'.", PICommonPointAttributes.PointType, drAttrValue); drAttrValue = myAttribute.PIPoint.GetAttribute(PICommonPointAttributes.PointID); Console.WriteLine("PIPoint Attribute '{0}' = '{1}'.", PICommonPointAttributes.PointID, drAttrValue); drAttrValue = myAttribute.PIPoint.GetAttribute(PICommonPointAttributes.Descriptor); Console.WriteLine("PIPoint Attribute '{0}' = '{1}'.", PICommonPointAttributes.Descriptor, drAttrValue); drAttrValue = myAttribute.PIPoint.GetAttribute(PICommonPointAttributes.ExtendedDescriptor); Console.WriteLine("PIPoint Attribute '{0}' = '{1}'.", PICommonPointAttributes.ExtendedDescriptor, drAttrValue); drAttrValue = myAttribute.PIPoint.GetAttribute(PICommonPointAttributes.CreationDate); Console.WriteLine("PIPoint Attribute '{0}' = '{1}'.", PICommonPointAttributes.CreationDate, drAttrValue); Console.WriteLine(); // Set PIPoint Attribute value string newAttrValue = "New Value: " + DateTime.Now.ToShortTimeString(); myAttribute.PIPoint.SetAttribute(PICommonPointAttributes.Descriptor, newAttrValue); myAttribute.PIPoint.SetAttribute(PICommonPointAttributes.ExtendedDescriptor, newAttrValue); AFErrors<string> errors = myAttribute.PIPoint.SaveAttributes(PICommonPointAttributes.Descriptor, PICommonPointAttributes.ExtendedDescriptor); if (errors != null && errors.HasErrors) { Console.WriteLine("Errors calling PIPoint.SaveAttributes:"); foreach (var item in errors.Errors) { Console.WriteLine(" {0}: {1}", item.Key, item.Value); } }