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

AF SDK Reference

PIPoint.UnloadAttributes Method

  • Last UpdatedJan 12, 2026
  • 3 minute read
PIPoint.UnloadAttributes Method
Unload PIPoint attributes from the cache.

Namespace:  OSIsoft.AF.PI
Assembly:  OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.2.0.7

Syntax

public void UnloadAttributes(
	params string[] names
)
Public Sub UnloadAttributes ( 
	ParamArray names As String()
)

Dim instance As PIPoint
Dim names As String()

instance.UnloadAttributes(names)
public:
void UnloadAttributes(
	... array<String^>^ names
)
member UnloadAttributes : 
        names : string[] -> unit 

Parameters

names
Type: SystemString
The list of PIPoint attribute names to be unloaded loaded. The PICommonPointAttributes class contains some of the common PIPoint attribute names.

Remarks

The PIPoint attributes for the specified list of names are unloaded from the client's cache. 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);
    }
}

Version Information

AFSDK


See Also

In This Topic
Related Links
TitleResults for “How to create a CRG?”Also Available in