Exporting Individual Prim as USD File via Python in Omniverse

Hello,

I’m working on a project in NVIDIA Omniverse and need to export a specific prim from a larger stage into a separate USD file, similar to the “save selected” option available through the right-click context menu. However, I want to automate this process using Python.

Most resources I’ve found only cover exporting entire stages. Does anyone have insights on how to export just one prim from within a stage using Python scripting?

Any guidance or code examples would be greatly appreciated.

Kind regards

Axel

@axel.goedrich would you anticipate running the script after the prim selection? or is the goal to eventually batch export each prim from a selection of prims into their own USD file?

one thing to consider is whether you’d want the dependencies of that prim (textures, shaders, parent xform, …etc) or just the geom?

Hi @Simplychenable,

Thank you for your response.

I want to batch export prims into separate USD files from a given list of prim paths. I would also like to retain all the dependencies (textures and so on). If the selected prim has child prims, those should be included in the export as well.

To give you more context, I’m working on an extension for automated generation of synthetic data for object detection. In this extension, users in Isaac Sim can select prims and easily add their paths to a list with the click of a button. When the user initiates the synthetic data creation, the extension should automatically export each prim in the list as an individual USD file into a specific folder. These USD files will then be used as the objects for training in object detection, and will be part of a replicator pipeline to generate synthetic images for training.

I hope this clarifies my project’s needs. Any advice on how to export prims with all their dependencies, would be very helpful.

Kind regards

Axel

Hi @axel.goedrich - Are you using this documentation for Object detection extension?
https://docs.omniverse.nvidia.com/isaacsim/latest/replicator_tutorials/tutorial_replicator_object.html

Hi @rthaker,

thank you for the Link, I have not seen this yet. There are some interesting features, that I might incoperate in my extension.

I based my extension (at least the backend of it) on this documentation: 10.3. Offline Dataset Generation — Omniverse IsaacSim latest documentation (nvidia.com)

I want to write the extension myself, to have more control over it and also simultaneously enhance my understanding of the replicator process.

The whole replicator process seems to be very intuitive at the moment. However, I’m still figuring out how to export a prim from a scene, as previously mentioned. An alternative would be to import the entire scene and deactivate or hide all elements except those I need for training. Yet, I’m inclined towards the former approach, partly out of curiosity.

Kind regards

Axel