Associative geometry
In solid modeling both the geometry and the topology of a shape are defined. Some times it is required to expand the entity type description to include a sub-type or form- for example, for lines form 1 might be between screen positions, form 2 tangent to two curves and so on- and to store in the entity data pointers to the entities used in construction, and the location of any screen positions used. With such an arrangement it is possible for modification of one entity to be reflected in the dependent entities. This facility, known as associative geometry, is particularly useful for updating dimensions to reflect changes in a drawing, as shown in the following Figure.
Example of associative geometry

Attributes
In addition to associating entities each other, we can also associate non-geometric data with entities through the use of attributes . These are typically name-value pairs, where the name is an alphanumeric character string, and the value may be a string or a number. They are linked with entities through pointers from the entities to the attributes. The classic use of attributes is for the preparation of parts lists or bills of materials from a computer-based drawing or model, as shown in the following table.
Object-oriented representations (Programming)
The problems is that Many CAD systems are very large computer programs and they tend to be difficult to maintain, and the software organization that develops and supports the system has to spend a large amount of its time correcting faults (bugs) in the software.
Problems with rewriting elements of programs for functions that have already been coded, because the procedures tend to be rather dependent on the data structures employed, and vice versa.
These difficulties may be overcome by using a new programming style: object-oriented programming OOP.
In traditional programming approach, program procedures operate on passive data structures that represent the object being modeled. In OOP systems the data structures are combined with the procedural elements (methods) that manipulate them within objects. The whole program is then built around a set of such objects, which interact with each other by passing messages. Each object has a number of specified massages to which it can respond: on receiving a massage, the object carries out actions, which may involve internal computation, external actions, or the passing the messages to other objects. The emphasis in OOP is thus less on the design of overall data and procedural structures than on the specification of the objects themselves, the role that they perform, and the nature of the communication between them.










