# Geometry Definitions and Instances

A geometry definition is a shared geometry that can have several geometry instances in the same or different features. A geometry instance consists of a geometry definition reference, a placement location, and a 3D affine matrix. Geometry definitions may contain any type of geometry, including instances of other geometry definitions.

Geometry instances are useful for complex geometries where many copies of the same object are required. For instance, in a visualization of a city, many copies of the same park bench may be used in different locations.

If a single geometry definition is used, with many geometry instances, the overall file size, processing required, and effort to display the geometry is greatly reduced than if many copies of the same geometry are used. This is especially true if the geometry instance is very large or detailed.

With a single geometry definition, it is also possible to easily modify only the geometry definition, and subsequently update all instances of that definition without needing to modify every instance. For example, if a user wishes to change the park bench from red to blue, a modification can be made to the geometry definition only, and it will subsequently be reflected in all geometry instances.

### Geometry Definitions Attributes

- fme_geometry = fme_aggregate
- fme_type = fme_collection

## Geometry Instantiation

Some formats or transformations do not or cannot support geometry instances. In the cases where a format or transformation can no longer be treated as a geometry instance, it is instantiated so that it no longer refers to the shared geometry definition, but instead becomes an independent copy of the original geometry definition, adjusted with the size and placement for that particular geometry instance. This process is called geometry instantiation.