@edsonbffilho i think one of the ways is to do the following:
open the file which contain the part you want as is (not load as reference/payload).
select the part(s) you want to use. if you want to preserve the material, you will want to select the corresponding shader(s) in the Looks folder. in addition, you will want to select the xform or hierarchy if you wish to maintain those as well.
Ctrl + C to copy the prim(s). alternatively, you can right click in the stage panel after selecting prims and choose to copy prim.
open the second file where you want the part(s) to go. (again, not to load as reference/payload)
Ctrl + V to paste the prim(s) you copied from the first file into the scene. alternatively, you can paste prim into the stage.
make any other necessary changes to the second file, such as hierarchy and consolidating the shaders in the stage panel, before either saving over it or saving it as a separate USD if you want to play it safe.
once you’ve done that, you should be able to reference that file into other USD files with the modifications.
the overall idea is to grab the parts and edit the source USD file rather than trying to work with references or payloads. the error message regarding ancestral prims is likely because you are trying to work with references/payloads which i don’t believe is how you want to go about it (hence duplicate is not even an option). and since you can only open one file at a time with kit, copy and pasting is one of the ways that you can work around that “limitation”.
With respect, a roller is just a cylinder. A metal struct is just a cuboid. I would not even both to duplicate geometry from another source. Just add a cylinder etc to the forklift.
The other way to properly modify geometry is to just export the whole asset to a DCC application and “fix” it there, and then bring it back. Or just bring in additional external geometry from a DCC and then add it to the forklift usd file.
Also, everytime I do ctrl+c in the meshes of one USD, I get a crash with the error:
[28.141s] Isaac Sim App is loaded.
2025-07-07 12:06:47 [43,276ms] [Warning] [omni.usd] Unexpected reference count of 2 for UsdStage 'anon:0x2c509480:World0.usd' while being closed in UsdContext (this may indicate it is still resident in memory).
2025-07-07 12:06:48 [43,600ms] [Warning] [omni.hydratexture.plugin] '/Render/OmniverseKit/HydraTextures/omni_kit_widget_viewport_ViewportTexture_0' is not a Usd.RenderProduct and cannot be used, reseting to '/Render/OmniverseKit/HydraTextures/omni_kit_widget_viewport_ViewportTexture_0'
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 25 (X_SendEvent)
Serial number of failed request: 634
Current serial number in output stream: 636
that’s the “limitation” i was referring to. hence the workaround of having to open the source of one USD, grab the part(s) you need; open up the second USD (while staying in the same Isaac Sim session) in order for you to edit/paste those parts back in.
regarding the BadLength message, it might be because the mesh(s) you are trying to copy is too dense/has too many poly? can you verify if you get that message if you copy one relatively simple prim and see if the crash persists?
to the point that the mod has made, perhaps the best approach might be to make the necessary edits in programs that can handle mesh transfer/editing more easily.
Yes, please use modeling software. For example, take a fork lift asset. Open that usd file in 3dsmax 2025. Edit it as needed. Save it as the same usd file. Now open it again in Isaac Sim. The model is updated. We are NOT a modeling software. We do not try to be. We visualize the models provided. If the model needs work, this work should be done outside of Omniverse in a professional CAD or Design Application. 3dsmax, Maya, Blender, Revit, Solidworks etc.
One problem we come across with this approach is the loss of any Isaac-specific additions to the USD, such as physics and joints, on the round trip from Isaac → DCC (such as Blender) → Isaac
If you are deleting geometry, just delete it, in the usd file
if you are adding geometry, create that NEW geometry in a modeling software, separately and then add it to the main asset usd file. You can even import the asset usd file as a reference to model the new geometry, but do not actually modify the master file.
So for example if you have forklift.usd, you can import forklift usd into 3dsmax 2025. You can then build new geometry for the file. However, then just save ONLY the new geometry in the right origin point and save as “fix.usd”. Then open forklift.usd in Kit. Drag in fix.usd into the file as a reference. Make sure it aligns. Now the asset has been fixed with new geometry. Anything you need to just move or delete, do so.