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, algorithms, parameters, constraints, constraint rules, and shape properties; and determining shape size and position for shapes in the graphic utilizing the algorithms, parameters, constraints, constraint rules, and shape properties associated with the layout nodes.