Defining a Layout area for repeating elements.

The placement of repeating elements can be limited to the area defined by a layout frame by using the build mode area.

When the Build action of a frame placeholder with type "area" is executed, that frame is used as the layout frame, and all other placement parameters in the format string are ignored. Each layout frame defines these parameters itself - you can configure them in the "Area Building" panel.

Chaining frames is also an option - this allows distributing repeating elements among multiple layout frames.

In this example, repeating elements were placed around the text frame in a clockwise fashion. Previously, this required complex cScript programming.
In the screenshot, multiple layout frames were chained (green background) surrounding the product text (magenta background). They were filled with repeating elements, beginning with the right hand frame and continuing clockwise.

The settings controlling the area build of repeating elements are configured in the area build panel. The panel contents depend on the selection in the document: if the selected frame is a layout frame or part of a repeating element, information pertaining to the chain is displayed in the left and right portions of the panel. The central portion is used to configure the layout frame, and therefore is only active when such a frame is selected. If none or multiple frames are selected, the controls in the panel are deactivated.

The panel has three areas: The list of layout frames (chains), the layout frame settings and the element products.

If a chain is filled with repeating elements, the paste is canceled. Extra items are ignored and the following message is written to the logfile:

# Build cancelled, some frames are leaving the page or their layout area.

If the document shows the placeholders (context menu Placeholders -> Show), the last frame of the chain will show a red background indicating how many elements could no longer be inserted into the document:

The placeholder will also be shown in the ToDos panel with appropriate information.

In product builds, it may be necessary that the size of frames of the frame chain be variable. This is particularly useful when the number of elements to be placed is not known. To do this, set the continuation triangle of the Template Behavior panel to this frame. To set the triangle, the frame must be converted into a text frame in a short span. Please make sure to put the continuation triangle only in frames that have enough place to downward!

If the continuation triangle is set, the frame is enlarged before the loading of the repeating elements to the maximum height specified by the page element and is reduced after loading to exactly enclose the elements. If no elements are loaded, the frame gets the minimum possible height of 4 Pt.

In releases prior to R14610, the order of the area frames was controlled by the identifiers and sequence numbers of the template frames: All frames using the same identifier as the frame triggering the build form the area filled with elements. The order they were filled in was then controlled with the sequence numbers (identifier and sequence are configured in the Template Behaviour panel.) This description no longer applies in R14610 onwards!

It is possible to link multiple frames. Placement of repeating elements then continues with the next frame in the chain, once the current frame is full. The layout behaviour for each frame in the chain may be configured individually.

Frames are linked in the area build panel, too. Here, frames can be added to or removed from the chain, and the fill order can be configured as well.

In the left hand section of the panel, the layout frames in the chain of the frame currently selected in the document view are listed. This list is deactivated if multiple frames are selected.

If the document shows the placeholders (context menu Placeholders -> Show), the order of the frames is highlighted in blue on the frame. The marker is always located at the corner of the frame where the first element will be inserted:

There are multiple tools for editing frame chains available within the panel:

/

Add a frame to the chain:

When this button is clicked, all frames then selected individually in the document view are added to the chain. This also removes the frame from all other chains. Chains can only be created within a single comet group.

This mode is deactivated when the panel is closed, or multiple frames are selected in the document view.

Otherwise, you can manually disable the mode by clicking the button again.

Remove frame from chain:

Removes the frame selected in the list from the current chain.

The first frame in the list (the one with the repeating element placeholder) cannot be removed.

Move frame upwards:

Moves the frame selected in the list upwards by one position.

The first frame in the list (the one with the repeating element placeholder) cannot be moved.

Move frame downwards:

Moves the fraem selected in the list downwards by one position.

The first frame in the list (the one with the repeating element placeholder) cannot be moved.

As of now, repeating elements can be laid out in two different modes - row-by-row and column-by-column.

Setting Description Preview
Row-by-row The repeated elements are placed in the frame horizontally. If an element does not fit to the right/left of the last element, a new row is started.
Column-by-column The repeated elements are placed in the frame vertically. If an element does not fit below/above the last element, a new column is started.

The settings of the build directions determine the starting point of the build of repeated elements, and the order they are placed in.

In row-major builds, the horizontal direction controls the placement of individual elements, while the vertical direction determines the placement of rows.

In column-major builds, the horizontal direction controls the placement of columns, while the horizontal direction determines the placement of individual elements therein.

The location of the first element therefore depends on the settings of the two directions:

Horizontal Direction Vertical Direction Starting point
Left to Right Top to Bottom Top Left
Right to Left Top to Bottom Top Right
Left to Right Bottom to Top Bottom Left
Right to Left Bottom to Top Bottom Rigth

Examples:

Setting Preview
Row-by-row, left to right, top to bottom
Row-by-row, right to left, bottom to top
Column-by-column, left to right, bottom to top
Column-by-column, right to left, top to bottom

Please note that the starting point is not necessarily equivalent to the actual placement of the element. The latter is also affected by the alignment of the elements and rows/columns.

The internal alignment of rows and columns determines the alignment of the contained elements to the row or column. For example, if elements of varying height are placed in row-by-row fashion, they can be aligned to the upper or lower edge of the row, or its mid-line.

In row-by-row builds, these parameters control the individual elements' vertical alignment relative to the row, in column-by-column builds they control the horizontal alignment relative to the column.

The internal alignment can be set individually for the first and last row/column, while all other rows/columns share one setting.

Row-by-row placement
Setting Description Preview
Top Align the upper edges of elements with the upper edge of the row
Center Align the vertical center of elements with the vertical center of the row
Bottom Align the bottom edge of elements with the bottom edge of the row
Column-by-column placement
Setting Description Preview
Left Align the left edge of elements with the left edge of the column
Center Align the horizontal center of elements with the horizontal center of the column
Right Align the right edge of elements with the right edge of the column

The alignment with the frame controls the placement of repeated elements along the edges of the frame. In row-by-row builds, this parameter controls the horizontal position of the elements within the frame, in column-by-column builds the vertical position.

Row-by-row placement
Setting Description Preview
Left The row of elements is aligned with the left edge of the frame
Center The horizontal center of the rows is aligned with the horizontal center of the frame
Right The row of elements is aligned with the right edge of the frame
Horizontal Justify The elements in the row are spaced evenly to fill the width of the frame. With this setting active, the minimum x distance is applied when spacing the elements.
Row-by-row placement
Setting Description Preview
Top The column of elements is aligned with the upper edge of the frame
Center The vertical center of the column is aligned with the vertical center of the frame
Bottom The column of elements is aligned with the lower edge of the frame
Vertical Justify The elements in the column are spaced evenly to fill the full height of the frame. with this setting active, the minimum y distance is applied when spacing the elements.

The distribution in frame controls the placement of the fully formatted rows/columns, treating them as one big element. In row-by-row builds, these parameters control the vertical placement of rows within the frame; in column-by-column builds, they control the horizontal placement of columns.

Row-by-row placement
Setting Description Preview
Top The upper edge of the top row is aligned with the upper edge of the frame.
Center The vertical center of the bounding box of all rows is aligned with the vertical center of the frame.
Bottom The lower edge of the bottom row is aligned with the lower edge of the frame.
Vertical Justify The rows are spaced evenly to fill the full height of the frame. With this setting active, the minimum y distance is applied when spacing the rows.
Column-by-column placement
Setting Description Preview
Left The left edge of the first column is aligned with the left edge of the frame.
Center The horizontal center of the bounding box of all columns is aligned with the horizontal center of the frame.
Right The right edge of the last column is aligned with the right edge of the frame.
Horizontal Justify The columns are evenly spaced to fill the full width of the frame. With this setting active, the minimum x distance is applied when spacing the columns.

The minimum distance settings control the distance between elements and rows/columns.

Row-by-row placement:

Column-by-column placement:

The build-up area can grow with the number of repeating elements until the bottom of the page. The width of the construction area remains unchanged. To do this, open the panel Temlpate Behavior and, while holding down the CMD button, click in the third column of the frame settings until the filled triangle appears.

Please note: An automatic continuation of the construction area on the following document pages is not possible.

There are multiple tools at the bottom of this section:

Reorganize:

Reorganized the repeating elements existing in the document of the current frame chain, with respect to the settings in the panel.

Elements that no longer fit into the document or the layout frames are thereby removed from the document.

Automatic Reorganization:

If this mode is enabled (the icon is red), each change in the panel automatically causes a reorganization of repeating elements in the current frame chain.

The right portion of the panel deals with repeating elements that are already built. Elements that already exist in the document are listed here. You can reorder them or remove them here.

Changes made to this list are applied during the next reorganization.

You can change the order of the elements via drag-and-drop.

There are a number of tools for editing this list at the bottom of this section:

Remove frames:

Removes all frames of the element currently selected in the list.

The frames are deleted from the document.

Move frame upwards:

Moves the frame currently selected in the list upwards by one position.

Move frame downwards:

Moves the frame currently selected in the list downwards by one position.

Putting together the products to be built in a repeating element can also be done via a cScript. Further information can be found here.

A number of cScript functions are available for configuration of layout frames. These functions allow configuring layout frames in the same functionality as the panel.

While you can set the layout settings of a frame from cScript, you should not do that while building repeating elements.
Changing the layout configuration of a frame that is currently involved in a build of repeating elements can lead to unforeseeable results!

The following functions are available for this purpose: