NVIDIA Omniverse - Include An Existing Model In USD Stage

NVIDIA Omniverse - Include An Existing Model In USD Stage

iago_mf
Not applicable
79 Views
3 Replies
Message 1 of 4

NVIDIA Omniverse - Include An Existing Model In USD Stage

iago_mf
Not applicable

[ FlexSim 23.2.0 ]

Hi!

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!

0 Likes
Accepted solutions (1)
80 Views
3 Replies
Replies (3)
Message 2 of 4

philboboADSK
Autodesk
Autodesk
Accepted solution

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.



Phil BoBo
Sr. Manager, Software Development
Message 3 of 4

iago_mf
Not applicable

Thanks, Phil !

The explanation it's very clear now.

Message 4 of 4

Kevinchen
Not applicable

https://answers.flexsim.com/questions/176247/how-to-use-the-old-model-to-connect-to-the-usd-sta.html

I have a very similar issue, but using your method was unsuccessful. I would like to ask if there are other ways to link an existing model to a USD file in Omniverse?

0 Likes