In der Sprache Intent ist eine Berechnung das Ergebnis der Referenzierung einer Regel.
Der Wert einer Regel wird berechnet, wenn die Regel zum ersten Mal referenziert wird. Gewöhnlich wird der Wert gespeichert und zur späteren Referenz zurückgegeben. Diese Art der Berechnung wird als bedarfsgesteuerte Auswertung bezeichnet. Berechnungen und Regelauswertungen werden nur bei Bedarf durchgeführt.
Im folgenden Beispiel referenziert die untergeordnete Regel explizit ein Design über den Namen:
Child leg As :smallSupport End Child
In diesem Fall verfügt das Exemplar des Schenkelbauteils in einer Baugruppe immer über die Attribute des Designs :smallSupport.
Eine konfigurierbare Baugruppe muss zusätzliche oder andere Komponenten basierend auf den Anforderungen des Designs bereitstellen. Beispielsweise wird je nach dem Wert eines benutzerdefinierten Parameters eine von zwei Designs für den Schenkel ausgewählt.
Eine untergeordnete Regel kann zur Auswahl zwischen zwei (oder mehr) Designs verwendet werden. Im vorherigen Abschnitt basierten alle Exemplare des untergeordneten Schenkels auf dem Design :smallSupport. Die Lastanforderung könnte die Verwendung einer stabileren Schenkelkonstruktion gewährleisten.
Im folgenden Beispiel wird eine von zwei Designs basierend auf dem benutzerdefinierten load-Parameter ausgewählt.
Child leg As (If load > 200 Then :largeSupport Else :smallSupport) End Child
Im folgenden Beispiel wird ein untergeordnetes Element basierend auf dem Design :centerSupport erstellt, wenn der load-Parameter den Wert 200 überschreitet. Wenn der load-Parameter den Wert 200 nicht überschreitet, wird das untergeordnete Element nicht erstellt.
Child stiffener As (If load > 200 Then :centerSupport Else :nullDesign) End Child
Für die Auswahl aus mehr als zwei Designs erstellen Sie zunächst eine separate Regel, die darüber entscheidet, welches Design zu verwenden ist.
Rule legName As Name If load <= 50 Then legName = :nullDesign ElseIf load <= 200 Then legName = :smallSupport ElseIf load <= 350 Then legName = :mediumSupport Else legName = :largeSupport End If End Rule
Als Nächstes referenzieren Sie die Regel, die Sie eben erstellt haben, um das entsprechende Support-Design für den angegebenen load-Parameterwert auszuwählen.
Child leg As legName End Child