Attributes that are intrinsic to all objects and thus not inherited, or shared, by aliases. There are few examples:
- $Flags (from v8.6.0)
See a full listing of intrinsic attributes: be aware that many read-only system attributes are also intrinsic. Whether a note is intrinsic or not is also noted on the Document Inspector's System tab. It can also be verified in the TBX document's XML.
User attributes are never intrinsic and cannot be made so.
Aliases can show a discrete $DisplayName but it can only be set via conditional Display Expression code. Simply using the Text Inspector's Title sub-tab's $DisplayExpression input box with non-conditional code always sets both the original's and all aliases' $DisplayName to the same value.
For an alias to use a different $DisplayName from its original or other aliases (in different containers), the conditional code needs to identify the context of the note in scope. This is most easily done by looking at an attribute of the note's parent as this is always discrete to the individual original or alias. Using data stored in the parent's attribute(s) is also a neat way for the conditional code to insert different values in different branches of the expression's code.
Intrinsic attributes are also significant if setting attribute values of a note via an alias, such as in an agent's action. It is necessary to reference the original directly the via the 'original' designator. Thus, in an agent action:
$Xpos = 4;
…sets the $Xpos of the alias currently being processed. To make the action set the attribute in the original of the alias, use:
$Xpos(original) = 4;
You might want to set both the alias and original values, in which case, this also works:
$Xpos = 4;$Xpos(original) = $Xpos;
Of course, for all non-intrinsic attributes, setting the attribute in the alias also sets it for the original and using the original designator is not required (though it would still work if you used it by mistake).
The intrinsic status of an apptribute is not