Layout is a collection of basic objects, SmartObject instances, and associated attribute settings. These attribute settings determine how the layout appears when you run the application. Each layout has a name and an associated run-time expression.
When you run a procedure file, it determines whether to use a layout by evaluating the layout's run-time expression. If the expression evaluates to TRUE, the file uses that layout. When the file determines that it uses a particular layout, the file executes a CASE statement entry for that layout. This CASE statement contains all of the attribute settings assigned for the layout.
At design time, a layout is visually manifested in the design window. You can switch between layouts in the design window, and the AppBuilder alters the appearance of the design window to match the characteristics of the new layout.