Iago MF avatar image
Iago MF asked Phil BoBo commented

NVIDIA Omniverse - Include An Existing Model In USD Stage


I was trying to use new omniverse functionality on an existing model, but the only way that I've found to include objects on the USD Stage is creating them after de USD Stage. I've tried to move all objects into USD Stage treenode, but it's now working when I save the USD Stage.

Is there any way of include objects of an existing model in th USD Stage?

Thanks in advance!

FlexSim 23.2.0
nvidiaomniverseusdusd stage
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

Phil BoBo avatar image
1 Like"
Phil BoBo answered Phil BoBo commented

You can save a new usd stage from the USD Stage object in FlexSim by typing an omniverse path into the field and pressing the save button. (Or using the browse button if you want to save the stage to a local file on disk.)

See the video below showing this series of steps, including moving existing objects into a USD Stage object using the Move into Highlighted feature of the Edit Selected Objects window:

Creating a new usd stage with existing simulation objects within the USD Stage object will appropriately create the necessary associations (as shown in the video above), but transferring nodes into a USD Stage object that already has a connected usd stage will not automatically create the necessary associations between the simulation object and a prim in the usd stage.

The association between a simulation object and a usd stage prim is created in the OnReceive event of the USD Stage object. This happens when an object is created in or moved into the USD Stage using moveobject(). Using transfernode() will only transfer the node in the tree without firing the associated events.

The Move into Highlighted button on the Edit Selected Objects window calls transfernode() to change the tree structure of the model. This doesn't fire the OnReceive of the USD Stage object that creates the simulation object/prim associations when the USD Stage object is already connected to a usd stage. See the video below.

I'll add a case to the development list to consider adding a way to create new simulation object/prim associations for objects that were transferred into a USD Stage without calling its OnReceive event.

In the meantime, in order to create those associations, you either need to (1) save the usd stage after transferring the objects as shown in the first video, (2) use moveobject() to move simulation objects into the USD Stage object, or (3) create the objects directly in the USD Stage.

· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Iago MF avatar image Iago MF commented ·

Thanks, Phil !

The explanation it's very clear now.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.