1. A method for creating and laying out a graphic within an application program, comprising: receiving a data model, the data model defining a set of data and data relationships to be represented in the graphic; receiving a graphic definition, the graphic definition describing the mapping of the data from the data model to layout nodes, which specify an algorithm, constraints, constraint rules, and shape properties; determining a shape size and position for the at least one layout node generated by the layout tree utilizing the algorithm, constraints, from the graphic definition, wherein algorithm, and constraints are associated with the at least one layout node; and specifying parameters for the algorithm, wherein the parameters are modified to modify a behavior of the algorithm.