How to Get Attribute Engineering Case Values in C#?

Hey folks,

I'm trying to figure out how to get all case values of an attribute in C#. Here's what I know so far:

If you've got a double-type attribute, it’s easy to grab the value in a specific UoM like this:

*Element.GetDbDouble(Attribute).ConvertUnits(DbDoubleUnits UoM)*

But when it comes to attributes defined as engineering cases, I thought I can get them like:
Element.GetValidDoubleArray(Attribute, ref output);
but Engineering cases seems not stored as arrays.

on the command line, you can do:

*q :DesignPressure('Case_1')*
*q :DesignPressure('Case_2')*

This gives results like `1960000 pascalg`, based on the project's default UoMs.

In C#, I was able to use `EvaluateAsString` to get the specific case values. Basically, I looped through cases built an expression for each:

for (int i = 0; i < attVal.Length; i++)
{
attValStr = Element.EvaluateAsString(DbExpression.Parse(Attribute.Name + "('Case_" + i.ToString() + "')"));
}

and then extracted the numeric part of the returned string. After that, I divided it by `100000` to convert it into `barg`. It works, but honestly, it feels like a hacky workaround.

What I really want to know is: does Aveva provide any direct method to handle this kind of thing? Something cleaner and more built-in?

Would appreciate any tips or ideas.

Thanks in advance!