Attributes that are intrinsic to all objects and thus not inherited, or shared, by aliases:
- $ID (from v5.6.0)
- $OutlineOrder (from v5.6.0)
- $OutlineDepth (from v5.6.0)
- $SiblingOrder (from v5.6.0)
- $DisplayExpressionDisabled (from v5.8.0)
- $RuleDisabled (from v5.8.0)
- $TimelineBand (from v5.10.2)
- $Searchable (from v5.11.0)
User attributes are never intrinsic and cannot be made so.
Aliases can show a discrete $DisplayName but it can only be set via conditional $DisplayExpression code. Simply using the Rename dialog'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 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).