Unable to relink Datasmith file in dataprep

I have been using Unreal Engine for over a year, and just recently started using dataprep for my projects. So far, it was smooth, until I moved the folders containing the datasmith files and I cannot reimport the datasmith files without losing all the information on the meshes I had worked on before I moved the folder location.

If I dont use dataprep, I can change the path link on the normal datasmith scene through edit, reimport it, and no information is lost, but I am unable to find the option to change the path in datasmith, while retaining all the previous info.

Help! I don’t want to redo all the material and textures which I have been working on for some time.

Hello can you describe more in details:

  • why do you change the source link? is it to get other version of the model or is it to get a completly different model?
  • what are exactly the information you are “losing”. What do you mean by redoing materials?

The way the dataprep is working is that you should do your work on asset and scene parametrization inside a recipe in the dataprep: e.g. set options on textures, replace materials, merge actors etc.
Then if you need to modify the source because you get a new version of a model or a different model, you reopen the dataprep asset (or you make an instance of it) and you edit the source file and re-execute the dataprep.
Like this you reapply the modifications stored in the recipe on the new file source.

Thank you for answering my questions. The issues I’m having are-

  1. While reorganizing my folders , I moved the datasmith folder files to new folders/new location( I did not know that changing the folder location would affect the reimport link/that I thought I could bring them back like relinking the path on a normal datasmith scene through edit).
  2. By “losing information” (sorry if this is not the lingo used), I mean, if I have to import the same datasmith file(new file path), it wipes the slate clean, as in whatever I have been working uptil that time, reverts back to the default datasmith material. Its frustrating since I’ve put hours of work on it and have to start all over again.
    (I did not notice the dataprep issue until I had to reimport the file to make a small change on my file, which happened in a span of few days , which might be irrelevant to the issue?idk).

I might just have been using dataprep wrong, but I use it to delete the unnecessary amount of actors(which gets assigned with every mesh) and merge some meshes before executing them. Just to be clearer, I use Unreal for Architecture Visualization, so I do not set materials on dataprep, since I need to set them later on accordingly.
The main issue I faced here was that I cannot relink the same datasmith file with the dataprep without losing info, ever since I moved folders.

Hello I am still not 100% clear on what are your step.

With datasmith:

  • you import a model, you get a datasmith scene, geometries and material folders
  • you then edit a material (let say change texture or color)
  • you can then reimport the scene with the same model and reimport process keeps your modification
  • this also works if you move the all the assets in a new folder
  • this also works if you change the source model ?

With dataprep:

  • you execute a dataprep => you get a folder with geometries and material, a datasmith scene and a level
  • then you modify your materials
  • then you try to reimport the scene?
  1. The dataprep process creates a Datasmith Scene that is different from the one through normal datasmith process: you do not have a source file in the scene, and some information such as the product structure are actually stored in the level and not in the scene anymore.
    Also if you force a new source link and reimport then you notice that the materials and geometry assets go into a different folder.
  2. If you re-execute the dataprep it will override the modification you have done on the assets.

So if you use dataprep you should make your modification in the recipe as re-executing the dataprep does not preserve local modification. And you are not suppose to be able to do a reimport of the scene directly. You should stay on the dataprep process.

I know it can be confusing, as datasmith scene behaviour are different if they come from dataprep or datasmith. I will discuss that again with our devs.

Hello. Thank you so much for explaining the work process on datasmith and dataprep in detail.
I understand that data in datasmith can be reimported, and it still keeps your modifications, even if you move folders, as long as you re-link the source file(even the files where folders are moved/renamed in Windows explorer, and not inside unreal). But I was hoping to find something similar for datasmith in dataprep, where, if you re-link the source file, you’d be able to get back your modifications when it is re-imported. Like I said, I mostly use dataprep because I find the actors attached to every mesh annoying, and delete them on dataprep, instead of deleting them one by one on the outliner since its more convenient for me to work on them when they are in under a single parent. Also, I don’t set the materials on dataprep since I need the meshes to be flexible for me to work on(Arch Viz stuffs, like changing wall paper textures/materials etc). I know that that’s not how I’m supposed to use dataprep, and hopefuly get better over time, but currently, being unable to reimport datasmith without getting all your modifications overridden is pretty frustrating.

I understand, I will note it in our ticketing system.

Alternative solutions are to apply new materials in a dataprep recipe, else is to make your deletion as a blueprint operation in editor. Like this you can still use the datasmith pipeline and you just have to press one button in your editor to do a custom operation after import.

Editor Utility Widgets | Unreal Engine Documentation.

1 Like

Thank you for the suggestion. I am still in the process of learning how to use blueprints and widgets, so I will try to make something which would work for my projects.