The profile method returns the profile definition in which the profile attribute is defined:

<result> = <attribute>.profile( [<expand>] )  

<attribute>

A value of type ProfileAttribute or an expression evaluating to a value of that type.

<expand>(Optional) A value of type boolean or an expression evaluating to a value of that type: whether to expand the "basic profile" and always return the actual profile this attribute was defined in.

<result>

A ProfileDefinition: the profile that defined <attribute>.


When an attribute is defined in a profile that is marked as "hidden", this profile will not be shown in the property window, and the attribute instead is placed under the virtual "basic profile". By default, the profile method will return "basic profile" when this is the case. When it is necessary to know the original, defining profile definition, use profile(true).

For example, assume this profile definition:

hidden profile test {
    string x;
}


Then the property window will display attribute "x" under "basic profile". The profile method then yields these results:

// Variable a contains the attribute definition for "x"
output a.profile();		         // default is false, result: basic profile
output a.profile(false);		 // result: basic profile
output a.profile(true);		     // result: test