# Body

A body is the highest level topological ENTITY in the ACIS Topological Structure. A body may contain multiple solid, sheet and wire regions. The term "solid" may be misleading. Perhaps it would be more appropriate to say "volumetric regions" because the "volumetric regions" need not be "solid." Applications may model flow volumes, air spaces, and electromagnetic fields, for example, with "solids". Sheets are two dimensional regions. They are frequently used to model idealizations of thin objects; occasionally they are used to represent cross sections of volumes. (For more information on the difference between the faces that bound a solid region and the face that comprise a sheet region, refer to Face Sidedness.) Wires are one dimensional objects. They are frequently used as "construction geometry" or to model center-lines of rods, beams, columns, tubes, wiring harnesses, and so on. Thus, a single ACIS body can contain a collection of 3D, 2D, and 1D regions.

If a body consists entirely of solid regions, it is termed a solid body. If a body consists entirely of sheet regions, it is termed a sheet body. If a body consists entirely of wire regions, it is termed a wire body. If a body contains some combination of solid, sheet and wire regions, it is termed a mixed body. If a body does not contain any solid, sheet or wire regions, it is an empty body. An empty body is represented by a body with zero lumps.

A body contains or owns any number of lumps. (A "lump" is like a lump of clay that can be formed into any shape.) The following two figures depict the creation of a body with more than one lump. When a cylinder is subtracted from a square block and the diameter of the cylinder is slightly larger than the length of a side of the block, the block is divided into four lumps. Although the four lumps are not physically joined, they are still represented by a single body. These four lumps could also be separated into four separate bodies, each with one lump. Conversely, four physically separated bodies, each with one lump, could be combined into one body with four lumps.

 Block and Cylinder Body with Four Lumps

An optional transformation associated with a body allows the local coordinate system of the body to be related to a global coordinate system. A body is the only topological element that can have a transformation associated with it.

## Implementation

The concept of a body is implemented in the ACIS BODY class. The BODY class is derived from the ENTITY class; therefore, BODYs are part of the persistent model and inherit all of the Model Management capabilities of the ENTITY class. In addition, the BODY class has methods (member functions) to obtain the topological ENTITIES below it in the topological hierarchy. A BODY contains (or owns) a singly-linked list of LUMPs; therefore, every BODY contains a pointer to its first LUMP. A BODY is the top level topological ENTITY; therefore, its owner method returns a pointer to a NULL ENTITY. In addition, a BODY contains a pointer to a TRANSFORM associated with the BODY. The most commonly used BODY methods are listed below.

 BODY::owner() Returns a NULL pointer. BODY::lump() Returns a pointer to the first LUMP owned by this BODY. BODY::transform() Returns a pointer to the TRANSFORM owned by this BODY.

A BODY also contains a pointer to a WIRE, as well as methods for getting and setting this WIRE pointer. These methods and this pointer are generally not used by applications. They exist largely for historical reasons. Since ACIS version 1.7, WIREs have been owned by SHELLs. Refer to Topology for a diagram of the ACIS topological structure.

ACIS has multiple API functions to obtain the bounding box of a BODY. Each has the name api_get_entity_box. The Direct Interface function to obtain the bounding box of a BODY is get_body_box(BODY*, ...). These functions are preferred over BODY::bound because the bound member function will return a NULL box if it has not been calculated. The global functions will calculate the box if it has not been calculated. For more information on computing bounding boxes, refer to Entity Boxing.

ACIS contains a large number of global functions to construct, manipulate, query, and destruct BODYs. In fact, the majority of the functions in the API operate on BODYs. Moreover, many of the functions that operate on topological ENTITYs below the BODY level expect the ENTITYs to be part of a valid BODY.

## FAQs

For related information on BODYs, refer to FAQs on BODY.

• Local Operations for more information on manipulating bodies using local operations.
• Surfacing for more information on creating and manipulating faces within bodies.