Rhai-Funktionsreferenz
Eingebaute Funktionen und Scope-Variablen, die in Rhai-Simulationsskripten verfügbar sind.
Agent Reference
agent.get_propbothLiest den Wert einer Eigenschaft auf dem aktuellen Agent. Die einfache Form gibt den Wert am aktuellen Zeitschritt zurück. Mit einem negativen Offset blickst du in die Vergangenheit — nützlich für selbst-referentielle Formeln, in denen der neue Wert vom alten abhängt. Der Rückgabetyp folgt dem Datentyp der Eigenschaft: eine Zahl für Number-Eigenschaften, true/false für Boolean, ein String für alles andere.
agent.has_propbothPrüft, ob eine Eigenschaft auf dem Agent existiert. Gibt true zurück, wenn die Eigenschaft auf dem Knotentyp des Agents definiert ist, sonst false. Nützlich bei optionalen Eigenschaften oder wenn Formeln sich an unterschiedliche Agent-Typen im selben Modell anpassen sollen.
agent.set_propact_methodSchreibt einen Wert in eine Eigenschaft des Agents am aktuellen Zeitschritt. Nur innerhalb einer Act-Methode verfügbar — Eigenschaftsformeln verwenden set_prop nicht, sie geben ihr Ergebnis stattdessen zurück. set_prop kann Werte überschreiben, die Eigenschaftsformeln gerade für denselben Zeitschritt berechnet haben — nutze es, wenn Verhalten mehrere Eigenschaften betrifft oder einer Zustandsmaschine ähnelt.
Aggregation
count_propbothZählt, wie viele Agents in einem Array einen bestimmten Wert für eine gegebene Eigenschaft haben. Häufiges Muster: verbundene Agents in einem bestimmten Zustand zählen (z. B. aktive Mitglieder eines Teams, abgeschlossene Schritte eines Prozesses). Der Vergleich ist exakt — Zeichenkettenvergleich für Text-Eigenschaften, numerischer Vergleich für Zahlen.
sum_propbothSummiert eine numerische Eigenschaft über ein Array von Agents. Wird häufig zusammen mit get_connected verwendet, um Werte verbundener Agents aufzurollen — Gesamtgehalt, Gesamtbestand, Gesamtumsatz. Nicht-numerische oder fehlende Eigenschaften ergeben 0, sodass eine teilweise gefüllte Menge trotzdem eine saubere Zahl liefert.
Time Context
__dtbothDie Schrittweite des Szenarios — z. B. 1.0, wenn Start- und Endzeit in Monaten sind und dt 1 ist, oder 1/12, wenn Start und Ende in Jahren sind und du monatlich rechnest. Verwende es, um Raten zu skalieren, die pro Einheit echter Zeit ausgedrückt sind — so bleibt eine Formel auch dann korrekt, wenn die Granularität des Szenarios später geändert wird.
__timestepbothDer Index des aktuellen Zeitschritts — 0 am Anfang des Szenarios, 1 am nächsten Schritt und so weiter. Als Scope-Variable in jeder Formel und Act-Methode verfügbar. Nützlich für periodische Logik („einmal pro Jahr"), Startbedingungen oder jede Regel, die von der absoluten Zeit innerhalb des Szenarios abhängt.