Lesson 1 exercise solutions
- Last UpdatedMay 16, 2023
- 1 minute read
- PI System
- AF SDK 2.10
- PI Server
This section contains sample code that solves each of the exercises in this lesson.
-
Exercise 1
static void PrintElementTemplates(AFDatabase database)
{
Console.WriteLine("Print Element Templates");
AFNamedCollectionList<AFElementTemplate> elemTemplates =
database.ElementTemplates.FilterBy(typeof(AFElement));
foreach (AFElementTemplate elemTemp in elemTemplates)
{
Console.WriteLine("Name: {0}; Categories: {1}", elemTemp.Name,
elemTemp.CategoriesString);
}
Console.WriteLine();
} -
Exercise 2
static void PrintAttributeTemplates(AFDatabase database, string elemTempName)
{
Console.WriteLine("Print Attribute Templates for Element Template:
{0}", elemTempName);
AFElementTemplate elemTemp = database.ElementTemplates[elemTempName];
foreach (AFAttributeTemplate attrTemp in elemTemp.AttributeTemplates)
{
string drName = attrTemp.DataReferencePlugIn ==
null ? "None" : attrTemp.DataReferencePlugIn.Name;
Console.WriteLine("Name: {0}, DRPlugin: {1}", attrTemp.Name, drName);
}
Console.WriteLine();
} -
Exercise 3
static void PrintEnergyUOMs(PISystem system)
{
Console.WriteLine("Print Energy UOMs");
UOMClass uomClass = system.UOMDatabase.UOMClasses["Energy"];
foreach (UOM uom in uomClass.UOMs)
{
Console.WriteLine("UOM: {0}, Abbreviation: {1}", uom.Name,
uom.Abbreviation);
}
Console.WriteLine();
}Note that the UOMDatabase belongs to PISystem and is not exclusive to an AFDatabase.
-
Exercise 4
static void PrintEnumerationSets(AFDatabase database)
{
Console.WriteLine("Print Enumeration Sets");
AFEnumerationSets enumSets = database.EnumerationSets;
foreach (AFEnumerationSet enumSet in enumSets)
{
Console.WriteLine(enumSet.Name);
foreach (AFEnumerationValue state in enumSet)
{
int stateValue = state.Value;
string stateName = state.Name;
Console.WriteLine("{0} - {1}", stateValue, stateName);
}
Console.WriteLine();
}
} -
Exercise 5
static void PrintCategories(AFDatabase database)
{
Console.WriteLine("Print Categories");
AFCategories elemCategories = database.ElementCategories;
AFCategories attrCategories = database.AttributeCategories;
Console.WriteLine("Element Categories");
foreach (AFCategory category in elemCategories)
{
Console.WriteLine(category.Name);
}
Console.WriteLine();
Console.WriteLine("Attribute Categories");
foreach (AFCategory category in attrCategories)
{
Console.WriteLine(category.Name);
}
Console.WriteLine();
}