Eine untergeordnete Regel ist eine spezielle Regel, die ein innerhalb eines Designs untergeordnetes Element definiert. Durch die Auswertung einer untergeordneten Regel werden ein oder mehrere untergeordnete Bauteile instanziiert. Für untergeordnete Regeln ist keine Datentypspezifikation erforderlich. Je nach optionaler Mengenangabe handelt es sich hier immer um den Typ Bauteil oder Liste.
Child <name> As <DesignNameExpression> [, <Quantity = Expression>] <ParameterAssignmentList> End Child
Bei der Auswertung einer untergeordneten Regel werden nur die Ausdrücke für den Designnamen und die Menge ausgewertet. Die Parameterzuweisungsausdrücke werden erst ausgewertet, wenn diese explizit verlangt werden. Diese Parameterzuweisungsliste ist kein Anweisungsblock, und sie enthält möglicherweise auch keine Steuerungsflussanweisungen.
Das folgende Beispiel zeigt die Syntax einer untergeordneten Regel.
Der Ausdruck für den Designnamen muss den Namen eines gültigen Designs zurückgeben. Der einfachste Ausdruck für die Rückgabe eines Namens ist ein Doppelpunkt vor einer Kennung (z. B. :SquareTube). Der Designname kann aber auch durch einen komplexeren Ausdruck angegeben werden. Dieser Ausdruck wird noch vor der Erstellung des untergeordneten Elements ausgewertet, er darf also mit Ausnahme von Parameterzuweisungen auf kein Element innerhalb des untergeordneten Elements verweisen.
Eine optionale Ganzzahl als Mengenangabe legt fest, dass es sich bei der Regel um eine untergeordnete Liste handelt (siehe Liste untergeordneter Elemente), selbst wenn die Mengenangabe 1 ergibt. Ohne Mengenangabe handelt es sich um eine untergeordnete Regel des Typs Bauteil.
Bauteile können durch Änderung von Parameterwerten geändert werden. Wenn Sie zwei Bauteile mit unterschiedlichen Konfigurationen benötigen, müssen Sie zwei separate untergeordnete Regeln erstellen. Im nachfolgenden Beispiel sind die untergeordneten Elemente Support und crossMember beides Exemplare des Designs :SquareTube. In beiden untergeordneten Elementen sind jeweils andere Werte für die Parameter cut2 und length angegeben.
Child Support As :SquareTube size = tubingSize cut1 = 0 cut2 = 1 length = height - footThickness End Child Child crossMember As :SquareTube size = tubingSize cut1 = 0 cut2 = 0 length = width - (tubingSize * 2) End Child
Das einzige in untergeordneten Regeln unterstützte Flag ist Fixed. Das Flag Fixed legt fest, dass die Regel nicht dynamisch überschrieben werden kann. Der Versuch, eine dynamische Regel mit dem gleichen Namen hinzuzufügen, führt zu einem Fehler.