# Basic Group Operations

## Geometry Groups

The command syntax to create or modify a group is:

Group ["name" | <id>] Add <list of topology entities>

For example, the command,

group "exterior" add surface 1 to 2, curve 3 to 5

will create the group named Exterior consisting of the listed topological entities. Any of the commands that can be applied to the "regular" topological entities can also be applied to groups. For example, mesh Exterior , list Exterior , or draw Exterior .

Elements may specified by name as well. For example, the command

group 'interior' add surface with name 'bill' 'john' 'fred'

will add the surfaces named 'bill' 'john' and 'fred' to the group 'interior'.

Wildcards (*) can also be used with names. To add all surfaces with the substring 'bob' in their name, use the command:

group 'interior' add surface with name '*bill*'

A topological entity can be removed from a group using the command:

Group ["name" | <id>] Remove <entity list>

The Xor operation can also be performed on entities in group. Xor means if an entity is already in the group, the command will delete this entity from the group. If it is not in the group, the entity is then added to the group.

Group ["name" | <id>] Xor <entity list>

The Equals operation assigns the group to be exactly the same as the list given. All other existing members of the group will be removed.

Group ["name" | <id>] Equals <entity list>

## Group Booleans

Groups may also be created from existing groups by using boolean operations. Each of these commands will create a new group that contains entities from two existing groups. The intersect command will create a new group that contains elements common to both existing groups. The unite command will contain entities that exist in either group. The subtract command will remove entities that are common to both groups and create a new group from entities that exist in exactly one of the groups.

Group {<'name'>|<id>} Intersect Group <id> with Group <id>

Group {<'name'>|<id>} Unite Group <id> with Group <id>

Group {<'name'>|<id>} Subtract Group <id> from Group <id>

## Mesh Groups

Groups may also contain mesh entities. The commands for adding and removing mesh entities are analogous to those for geometric entities.

Group ["name" | <id>] Add {Hex|Face|Edge|Node <id_list>}

Group ["name" | <id>] Remove {Hex|Face|Edge|Node <id_list>}

Group ["name" | <id>] Xor {Hex|Face|Edge|Node <id_list>}

## Group Copy

Groups may be copied as groups using the group transform commands. Child entities cannot be moved using this command. If a child entity is in the group, its parent entity must be specified as well. In addition, all merge partners must be specified. Only groups containing geometric entities can be copied with these commands. If a geometry entity is meshed, the mesh will be copied as well, unless the [nomesh] option is given. Copied entities can be moved, rotated, reflected, or scaled as well.

Group {<'name'>|<id>} Copy [Move <x> <y> <z>] [nomesh]

Group {<'name'>|<id>} Copy [Move {x|y|z} <distance>...] [nomesh]

Group {<'name'>|<id>} Copy [Move <direction> [distance]] [nomesh]

Group {<'name'>|<id>} Copy [Reflect {x|y|z}] [nomesh]

Group {<'name'>|<id>} Copy [Reflect <x> <y> <z>] [nomesh]

Group {<'name'>|<id>} Copy [Rotate <angle> About {x|y|z}] [nomesh]

Group {<'name'>|<id>} Copy [Rotate <angle> About <x> <y> <z>] [nomesh]

Group {<'name'>|<id>} Copy [Scale <scale> | x <val> y <val> z <val>] [nomesh]

## Group Transformations

Groups may be transformed as groups using the group transform commands. This is especially helpful for transforming groups of free mesh elements, where no geometry exists. The command syntax is shown below.

Group {<'name'>|<id>} [Copy [nomesh]] Move <dx> <dy> <dz>

Group {<'name'>|<id>} [Copy [nomesh]] Move {x|y|z} <distance>...

Group {<'name'>|<id>} [Copy [nomesh]] Reflect {x|y|z}

Group {<'name'>|<id>} [Copy [nomesh]] Reflect <x> <y> <z>

Group {<'name'>|<id>} [Copy [nomesh]] Reflect {x|y|z}

Group {<'name'>|<id>} [Copy [nomesh]] Reflect <x> <y> <z>

Group {<'name'>|<id>} [Copy [nomesh]] Rotate <angle> About {x|y|z}

Group {<'name'>|<id>} [Copy [nomesh]] Rotate <angle> About <x> <y> <z>

Group {<'name'>|<id>} [Copy [nomesh]] Rotate <angle> About Vertex <Vertex-1> [Vertex] <Vertex-2>

Group {<'name'>|<id>} [Copy [nomesh]] Scale <scale> | x <val> y <val> z <val>

The nomesh option applies to the copy part of the command. If the no_mesh option is specify, the mesh will not be copied.

## Deleting Groups

Groups can be deleted with the following command:

Delete Group <id range> [Propagate]

The option propagate will delete the group specified and all of its contained groups recursively.

## Cleaning Out Groups

You can remove all of the entities in a group via the cleanout command:

Group <group_id_range> Cleanout [Geometry|Mesh] [Propagate]

By default all entities will be removed - optionally you can cleanout just geometry or mesh entities. As in delete, the propagate option will cleanout the group specified and all of its contained groups recursively.