Hat ein Schlüssel gegriffen, werden für diesen die dort definierten Bedingungen (Constraints) geprüft.
In der Verwaltungsmaske sind diese im Fenster unten rechts dargestellt.
Bei der Neuanlage eines Schlüssels wird automatisch eine leere Bedingung mit dem Namen „automatic“ angelegt.
Eine Bedingung ist mit einem Namen und einer Priorität versehen. Der Name dient zur übersichtlichen Darstellung und die Priorität zur Sortierung. Die Bedingungen werden nacheinander, mit Aufsteigender Reihenfolge der Priorität abgearbeitet.
Als wichtigstes Element einer Bedingung gehört der Bedingungsbrick. Dies ist eine spezielle Brickvariante. Über das Kontextmenü einer Bedingung kann dieser bearbeitet werden:
Mit dem Menüpunkt „Brick (Bedingung)“ gelangt man in den Brickeditor, in dem man die Bedingung mit der üblichen Bricklogik bearbeiten kann.
Mit dem Menüpunkt „Bedingung bearbeiten“ kann man den Namen und die Priorität der Bedingung ändern.
In einem Bedingungsbrick stehen zwei spezielle Kommandos zur Verfügung, die nur dort verfügbar sind.
Das Kommando Start unterbricht den Bedingungsbrick und signalisiert der laufenden Bricksuche, die unter dieser Bedingung liegenden Versionen zu verwenden.
Das Kommando Nächste Bedingung unterbricht auch den Bedingungsbrick, signalisiert aber der laufenden Bricksuche, diese Bedingung zu ignorieren und mit der nächsten weiter zu machen.
Am Ende eines Bedingungsbricks wird automatisch das Kommando Start ausgeführt, wenn nicht vorher explizit über Start oder Nächste Bedingung die Ausführung unterbrochen wurde.
Auf diese Art und Weise kann man also beliebige Bedingungen oder Regeln definieren, unter denen bestimmte Logik (Bricks) aufgerufen werden soll.
Obiges Beispiel weitergeführt könnte typischerweise dann so aussehen:
Eine leere Bedingung, die automatisch bei jeder Neuanlage eines Schlüssels erstellt wird, ist eine Bedingung, die keinen Bedingungsbrick enthält. Solch eine Bedingung greift immer, ohne dass extra ein Bedingungsbrick angelegt werden muss.