Once the structure network has been produced, the next stage consists of displaying the set of structures in the network. The ppost_struct function links a structure network to a workstation. No structure in the network can be displayed until this link is set up.
ppost_struct includes 3 parameters : the workstation identifier (ws_id), the network root structure identifier (struct_id), and an order of priority if several networks are to be displayed. When the ppost_struct (ws_id, struct_id, priority) function is called, the structure struct_id is said to be posted on the workstation ws_id.
In order to display all the structures in a network, it is sufficient to post the root structure of that network (it is not necessary to post all the structures of the network). If the CSS is made up of several networks (when the CSS is unconnected), it is necessary to post the roots of all the networks to display them. The order in which these networks are displayed is determined by the priority (3rd ppost_struct function parameter).
There is still a link between the structure network and the workstation, even after the network has been modified. It is not necessary to call ppost_struct again after a network has been modified. To delete a link between a network and a workstation, call punpost_struct (which breaks a network link) or punpost_all_structs (which breaks all the links on a workstation) or change the network root structure identifier.
Traversal and attribute scope
The fact that a structure has been posted does not usually imply that it is displayed on the workstation. The predraw_all_structs (ws_id, ...) function must be called to display the structure. This function displays all the structures in all the posted networks on the workstation.
predraw_all_structs activates a process called traversal which works through a structure network, generating a display of the graphics elements on the workstation.
Traversal is the process which interprets and executes the structure elements, applies the geometrical transformations, associates attributes with primitives, and displays the resulting image. Traversal of a network starts at element 1 in the root structure, elements are then processed sequentially, and the process ends with the last element in the root structure.
When a network is made up of several structures (the root has at least one pexec_struct element) traversal interprets the first elements in the root structure as far as the first pexec_struct(S) element. Traversal of the root structure is interrupted, and traversal continues with the structure identifier S. When this is completed, traversal of the root structure resumes at the next element.
The following diagram shows an example of a CSS with (elements e**) which may be of any type except pexec_struct

If the ppost_struct (ws_id, S3, 0.) function is called, traversal, set off by calling predraw_all_structs interprets the structure elements e** in the following order :
e31 - e41 - e42 - e43 - e44 - e45 - e33 - e21- e22 - e41 - e42 - e43 - e44 - e45 - e24 - e25 - e35
Note that, in the preceding example, if certain e4* elements are graphics primitives, they will be displayed twice on the workstation ws_id.
If the ppost_struct (ws_id, S2, 1.) function is then called, traversal set off by calling predraw_all_structs interprets the structure elements e** in the following order :
e31 - e41 - e42 - e43 - e44 - e45 - e33 - e21- e22 - e41 - e42 - e43 - e44 - e45 - e24 - e25 - e35
e21- e22 - e41 - e42 - e43 - e44 - e45 - e24 - e25
Two structure networks (one with the root S3 and the other root S2) have been posted on the workstation ws_id, so, in this case, traversal will work through structure S4 3 times. N.B. : traversal starts by displaying the network with the lowest priority (the 3rd ppost_struct function parameter).
During traversal , the system keeps track of the current value attributes. The current value of an attribute may be a default value, an inherited value, or an assigned value which is the result of an attribute assign element. Each time traversal analyzes a graphic primitive, it applies the current value and transformation attributes.
When traversal of a parent structure meets a pexec_struct (child) element, traversal is suspended, current attributes are saved in a pile and traversal of the child structure is initiated. When traversal is finished, the attributes in the pile are restored and traversal of the parent structure starts again, from the point at which it was suspended.
This concept of inherited attributes makes it possible to call a structure from several parent structures with different attribute values each time. The child structure may also modify the value and transformation attributes without affecting the environment of the parent structure.
Example of inherited text colr ind and line colr ind attributes in the following CSS :

If the ppost_struct (ws_id, S3, 0.) function is called, the primitives are displayed by traversal in the following order and with the following attributes :
ppolyline (plist1) primitive is displayed with a line colr index = 1
ptext (...,text1) primitive is displayed with a text colr index = 3
ppolyline (plist3) primitive is displayed with a line colr index = 1
ppolyline (plist5) primitive is displayed with a line colr index = 2
ptext (...,text2) primitive is displayed with a text colr index = 3
ppolyline (plist6) primitive is displayed with a line colr index = 4
ppolyline (plist7) primitive is displayed with a line colr index = 4
ppolyline (plist4) primitive is displayed with a line colr index = 2
ppolyline (plist2) primitive is displayed with a line colr index = 1
N.B. : In this example, as the pset_text_colr_ind function is only present at the start of the S3 root structure, the text color attribute is taken into account by all the text primitives in the 3 structures.