Rules also have flags that further define and refine its behavior. Here is a list of all of the flags available:
•Cached
•Parameter
•External
•Lookup
•Design
•Parent
•Required
•JSCode
•Async
•Locked
•Method
These are also defined in detail in the Rule Flag Reference section, but we’ll talk about a couple of them here since they are fundamental to understanding how kBridge works.
The Cached flag tells kBridge that once a Rule’s value is calculated, it should be remembered (or cached) so that the next time its value is needed the overhead of the calculation can be avoided. Of course, if something the Rule depends on changes, kBridge will always recalculate the value.
A Rule can be uncached as well, which tells kBridge to always calculate the Rule every time it is demanded. This can be useful in certain situations that have external side effects.
The Parameter flag is important because it indicates that a Rule can have its formula overridden by the formula provided by a parent via a Child Rule. Parameter Rules within a Design are what enable us to make different instances of a Design under different circumstances within the same model. For example, by providing a special Parameter Rule for one leg of the table, we can make it longer than all the other legs of the table, even though it is made from the same leg Design.