##
Using a FrameSet as a Frame

A FrameSetFrameSet can also be used as a FrameFrame, in which capacity it almost always behaves as if its current Frame had been used instead. For example, if you request the TitleTitle attribute of a FrameSet using:

209#209

the result will be the Title of the current Frame, or a suitable default if the current Frame's Title attribute is un-set. The same also applies to other attribute operations—i.e. setting, clearing and testing attributes. Most attributes shared by both Frames and FrameSets behave in this way, such as NaxesNaxes, Label(axis)Label(axis), Format(axis)Format(axis), etc. There are, however, a few exceptions:

ClassClass
  Has the value “FrameSet”.

IDID
  Identifies the particular FrameSet (not its current Frame).

NinNin
  Equals the number of axes in the FrameSet's base Frame.

InvertInvert
  Is independent of any of the Objects within the FrameSet.

NobjectNobject
  Counts the number of active FrameSets.

RefCountRefCount
  Counts the number of active pointers to the FrameSet (not to its current Frame).

Note that the set of attributes possessed by a FrameSet can vary, depending on the nature of its current Frame. For example, if the current Frame is a SkyFrameSkyFrame (§8), then the FrameSet will acquire an EquinoxEquinox attribute from it which can be set, enquired, etc. However, if the current Frame is changed to be a basic Frame, which does not have an Equinox attribute, then this attribute will be absent from the FrameSet as well. Any attempt to reference it will then result in an error.