Applying a transformation to all the entities of a group

[EDIT]: in Sim4Life 4.0 (and above), the steps below are no longer necessary. The ApplyTransform() function can be directly used on an EntityGroup object:

# Select "Duke" entity group
duke_group = model.AllEntities()["Duke"]
# apply transformation to each entity of the group
x = 10.0
y = 5.0
z = 12.0
duke_group.ApplyTransform( Translation(Vec3(x,y,z)) )

[ORIGINAL POST]
To apply a given transformation on a whole group of entities with Python, you have to use the ApplyTransform() function on each element of the EntityGroup object. What you can do is write a recursive function that does exactly that. Here is an example of such function:

def ApplyTransformRecursively(entity_group, transformation):
   if isinstance(entity_group, core.EntityGroup):
      for entity in entity_group.Entities:
         ApplyTransformRecursively(entity, transformation)
   else:
      entity_group.ApplyTransform(transformation)

You can use it like this:

# Select "Duke" entity group
duke_group = model.AllEntities()["Duke"]
# apply transformation to each entity of the group
x = 10.0
y = 5.0
z = 12.0
ApplyTransformRecursively(duke_group, Translation(Vec3(x,y,z)))