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)))
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login