connection. Instantiability is controlled by two definition attributes: Instantiate and Include-in-menus. These two attributes are collectively called the instantiation attributes. When you create a new definition, the default value of both instantiation attributes is yes.
To specify that a class is/is not instantiable:
Set the class's Instantiate attribute to yes/no.
To specify that a class does/does not appear in G2 menus:
Set the class's Include-in-menus attribute to yes/no.
Direct-superior-classes attribute), and in the class hierarchy schematic available through the Inspect facility (show on a workspace the class hierarchy). Other than that, the accessibility of the class depends on the values of its instantiability attributes. The effects and interaction of these attributes are summarized in this table:
Instantiable Classes That Appear in Menus
Whenever you create a new class, G2 adds the class to the class hierarchy. If the class is instantiable and appears in menus, the G2 menu of the class definition then includes the choice create instance. Choosing create instance instantiates the class. kb-workspace > new object, and a subclass of kb-workspace appears at some level under main menu > new workspace.
OBJECT and G2-TO-G2-INTERFACE called G2-TO-G2-OBJECT, adds the G2-TO-G2-OBJECT class to both the new object and the g2 to g2 interface submenus.
create instance in its G2 menu, but it appears as a higher-level entry in the menu hierarchy if and only if it is an ancestor of a class that is instantiable and appears in menus. Its appearance at the higher level facilitates navigating the menu hierarchy to the instantiable class.
create instance in its G2 menu, and does not appear in the menu hierarchy even if has an instantiable subclass that appears in menus. The instantiable subclass appears in the hierarchy as a subclass of the first of its ancestors that does appear in menus, or perhaps of more than one such ancestor if it has multiple inheritance.
Instantiate attribute is yes, G2 ignores the value of the attribute, and includes a Note that states:
note that the value of instantiate? should be changed to "no"
because system class inheritance precludes instantiation