Batch export/import

This is a handy script if you want to transfer your models from one 3d-package to another.

Category: Free work
Downloadable: Free

This is the perfect script to transfer your models from 3ds Max to ZBrush/Unity/UDK/…
Basically it batch exports objects to multiple files.
Supported formats : max, obj, fbx, 3ds, ase, dwf, dwg, dxf, dae.

General features

  • Very easy to use script
  • All options are saved.This means all checkboxes, text fields will remember your change.

Import features

  • Create file layers. Create a layer for every file and add the file contents to it.
  • Rename to file name. Rename all objects to the filename_1
  • Attach in file. Attach all objects from the same file together
  • Group in file. Group all objects from the same file

Export features

  • Reset geometry. Apply the boxmethod to every object (reset transformation etc.). Optionally move the pivot to the origin.
  • Delete turbosmooth. Delete the TurboSmooth modifier before exporting.
  • Move to [0,0,0]. Move objects to the origin before exporting
  • Rotate the objects before exporting (to fix rotation problems)
  • Scale the objects before exporting (to fix scale issues)
  • Name change. Add prefix and/or postfix to the name of the objects before exporting.
  • Combine collision mesh. Mesh with the same name and the given prefix/postifx will be exported together (ex. UCX_).
  • Combine LOD’s. Meshes with the given prefix/postfix will be exported to the same file. For example _LOD* (* means numbering) for unity.
  • Group support. Objects in a group are automatically exported to the same file. If the Collapse groups option is enabled, the group will be collapsed to one mesh.
  • FBX export options, use the FBX Preset option under the advanced section

So no need for an export scene. You can check the options and everything will be perfectly exported.
After exporting the scene will be restored.

How to install

You can easily run the script by dragging it in 3ds Max. If this doesn’t work, choose MAXScript -> Run Script…

The script now comes with an installer, everything should be clear.

This script has been updated several times by user requests.
If you have any remarks, requests or feedback, feel free to contact me.

More information on scriptspot. Download:Download

88 thoughts on “Batch export/import

  1. Stuart Joseph says:

    Hello, This script seems like it will do wonders for me in import times, however, I cannot find it… Where can I use it after it’s installed?

    • Jos says:

      Please run the installer (mzp) and read the installation instructions. There’s info on how to create a button in the installation dialog.

  2. Sven says:

    He Jos,
    amazing work you did!
    I’m currently converting max scenes to fbx. On some scenes I got an error and therefore the batch exports stops. If I load the scene manually into max and export as fbx, it works.
    I found out that its caused by the “Reset geometry” option. Unfortunatly I need that because otherwise objects will have wrong rotation values.
    This is the error message:
    – Runtime error: Attempt to access deleted scene object
    Here is the max file: https://ufile.io/20ayi

    Would be amazing if you could take a look at this. Thank you very much.

  3. BoboMoio says:

    Sorry for my noob question, I’m kinda newbie to Unreal and just found this script. This script can export an entire scene of separate meshes in 3ds max to Unreal, at the proper positions where all the models are in my scene in 3ds max and with pivots placed where I placed them in max, am I right?

    I have a scene of 2000 objects (a house actually, made in Max 2017). So, can I use this script to transfer the whole scene with working pivots and positions and etc. in Unreal??

  4. Ashutosh parida says:

    Hi. Jos. i just appreciate for this nice script.. i am using this some times. but i am facing a issue.. while importing multiple files in Inches… it dont works.. Lets say if i am importing 3 files in a row.. i set Inches in the units to be be imported…but after import..i found only 1st file is in inches and other ware imprted in Meters format.. can it be solved…

    • Jos says:

      Yes, you need to use the FBX presets for that.
      - Create a new fbx preset and save it somewhere on disk
      - Select this preset in the advanced options in my script
      This will apply the preset options to all exported objects.

      • ashutosh parida says:

        thank u jos ..for the replay. But i want to import files into 3ds max ..i dont do any export thing so please advise me any tip to import multiple DWG files into 3ds max in INCHES format. I am still facing the the issue . i had to do the importing manually. in inches every time. Hope there is some solve.
        Thank u in advance Jos.

  5. Damian says:

    Hello. The script is very time saving ! But is there any way to add “Import Grouped”. The script could name every imported file like max file is or folder where imported file is :) .

  6. Ren DT says:

    I don’t know why 3DsMax haven’t caught up to a simple script like this one.
    Thank you so much, all this time I have had to export multiple objects singularly.
    This is going to save me a TON of time, again thank you.

    3DsMax 2016

    • Chris says:

      Funny though as I’m trying to find something faster than, but end up having to use this to export, but Batch Loader by Anubis for Importing…being asked for every file is annoying.

      Which Jos & Anubis combined files…Anubis’s File is 4 years old and is way better.

      • Jos says:

        Hi Chris,
        I uploaded a new version with a bunch of fixes. Can you try again and send me your feedback? Let me know if there are any options that are not working as expected or missing.
        Cheers,
        Jos

  7. Slavi Hristozov says:

    Hi Jos.
    Incredible script. Only if it works the second time I open it. I am using MAX 2016.

    So I cleaned the folder in user/../maxscript.
    Then I got the following message:
    |MAXScript FileIn Exception|
    –Unable to convert: **to type BooleanClass

    How can I fix it?

    Thank you

    • Slavi Hristozov says:

      Update!
      When I restarted MAX the script worked. No trouble.
      Thou there is a suggestion for improvement.
      Would be nice if after the import the objects retain the name.

      Thank you

  8. Lev says:

    Hi,
    I found a bug. I you have a “:” in the name of your object, than you get empty files, with cut off names. Maybe not even a script bug. Just wanted to let you know!
    Apart from that, thanks for the script. Wanted to write it on my own, but why should I do this, when it already exists. :D

  9. charles says:

    hi jos ! thanks for the script.
    the question has been asked before. but i can’t see how you do to achieve a perfect export to unity. i always end up with a -90 somewhere. how do you achieve it ? i have seen that it may be caused to the reset Xform applied “before” the transformation. are you planning on update the script ?

    thanks

    • Jos says:

      I’ve updated the script to include an option to reset the object after the transformations. Please download the updated version and let me know if you encounter any problems!

  10. jared says:

    Hey Jos,

    I keep getting a runtime error when I try to use the button…it says when I evaluate the line of where the file is located

    – Error occurred in anonymous codeblock; filename: ; position: 237; line: 6
    – Runtime error: fileIn: can’t open file – “C:\Program Files\Autodesk\3ds Max 2015\scripts\JosBalcaen_Batch_Exporter_Importer_Run.mse”

    not sure what to do

  11. dong says:

    Thank you very much, it is REALLY USEFUL to me!!

  12. TC says:

    Nice! Any plans on adding resource collection? Also batch converting all max files in a specified folder /subfolders?

  13. gibbon says:

    Hi Jos,
    Thanks a lot for exporter, good job !
    I use your script since 1 month and I have many folder in scroll menu.

    How can I clean this ? I have not find where stored information…

    Thx

  14. triff says:

    Hi Jos,

    First up, thanks for the script – one of those you never knew you needed and then suddenly it’s a massive time saver :)

    One feature suggestion that would fit my current workflow really nicely would be to import/merge to layers named after the source filenames. Other than that, nothing to add! Great work.

    Cheers,
    triff

  15. Jason says:

    Hey Jos!

    Just wanted to say thank you for creating this incredibly handy plugin, this has been saving me so much time batch exporting! I do have a bug that I can’t seem to find the solution to:

    Exporting multiple UCX (collision) for one mesh does not seem to be working. It doesn’t seem to like the UCX_meshname_00, UCX_meshname_01 naming structure. If I export a single UCX collision with my mesh (rg. UCX_meshname) without the number at the end, it works.

    Any chance I’m doing something wrong? Do I need to group up my mesh and collision?

    Thanks for your help Jos!

  16. Maarten says:

    Hey Jos,

    Awesome script ! :)

    I am trying some scripting myself atm, could you please tell me how you did the
    Import/Merge/Replace radiobutton options in the import window of your script?
    Are you accessing the dialog options of the import window when it is created using .NET (somewhat like this http://forums.cgsociety.org/showthread.php?f=98&t=639812&page=1&pp=15&highlight=sendmessage)? Or are you using another method.
    I am strugling with this atm as I’m trying to batch import and want to set the import dialog radiobutton to the same options each time. Thank you very much

    -Maarten

    • Jos says:

      Hi Maarten,

      Radio buttons are defined with this line:
      radioButtons rbtImportType labels:#("import","merge","replace") default:(_data.optionImportType.Value())
      I save the value to an ini file every time it changes. So at startup all the settings are read into the _data object.
      Let me know if you need more info.

      Cheers!

  17. nmoser says:

    Thank you very much.
    How can I donnate something to support your project?

  18. Jamie says:

    Hey, been using the script for a long time – Amazing time saver! I have one issue though, there is often a long delay when exporting from certain .max files – often ones that have had many iterations/changes over a long time.

    I have tried:
    merging into a clean max
    cleaner script tools

    any suggestions? thanks

  19. Jonatan nunes says:

    Guy. I love you, I love you so much!

  20. Mats says:

    Hi,

    Looks great. I am batch saving to an older version of 3ds Max. Is it possible to add “Max 2014″ etc under export format?

    Thanks // Mats

  21. Fractal Core says:

    I’m exporting as FBX in Max 2014 with FBX 2014. The rotate before export option seems to apply BEFORE resetting the transforms. So it effectively does nothing.

    In Unity when you zero out the rotation on the imported object (Unity applies -90 x rotation automatically) it’s still on it’s side.

    Is this how the exporter is intended to work?

    Because if I rotate it on it’s side in Max then reset, then export. It imports into Unity fine (after zeroing x rotation). So if your exporter could do this (rotate THEN reset) it would work much better maybe.

    • Jos says:

      Hi, the rotate happens after the reset (just double checked my code). I don’t have time to check in unity. Just to double check; Make sure you have the checkbox checked next to rotate. Does it work if you don’t do the reset? Cheers

      • Fractal Core says:

        Yeah I tried lots of configurations, different rotation settings in the exporter, in max, before and after resetting transforms. I even tried with the FBX exporter option set to both Z up and Y Up, never seems to effect anything anyway.

        But you’re saying it does indeed rotate AFTER resetting. Isn’t this the problem. Maybe this is desirable for people using UDK, I’m not sure but for it to be useful for Unity, it just needs to rotate, then reset then export, then return to how it was in Max.

      • Fractal Core says:

        Sorry I just realized I said before when I meant after, in the original message. That first line was confusing how I had it. It should read…

        “I’m exporting as FBX in Max 2014 with FBX 2014. The rotate option seems to apply AFTER resetting the transforms. So it effectively does nothing.”

      • Fractal Core says:

        I’ve re-read what I’ve said and it might have looked like the problem went away. Just to be clear. There is still a problem.

        It needs to reset transforms after rotating. Or include an option to apply before or after.

  22. Rick Gallatin says:

    Great Script It saves all kinds of time. I was wondering is there any that it will create a seperate group for each file selected to import. I got like 200 max files of car hoods that I want in one file.

  23. Pierrick says:

    Hi !
    Really nice script, considering we need to re-export all our animations and models with a new scale for Unity 5.

    However, is there a way to export only the bones of a scene ? When exporting animations we don’t want the model to be included.

    • Jos says:

      If you’re batch exporting multiple max file there is no option for it atm. If you export one scene at the time you can try to select the bones (group it) and do a export selected. I can add a object type export filter (if you purchase a commercial version)..

  24. Artur says:

    Hi Jos

    Thanks for the script it is very helpful.
    I have a problem with it. I have group of objects. In this group, I have a lot of objects and also have several objects linked together in a hierarchy. For example: I have Object “Door” and object “Wing_Door”, objects “Wing_Door” is a child of the objects “Door”. When I export this group I created one fbx with all objects on the group without “Wing_Door” and one fbx with only “Wing_Door”. Can I export this group to one fbx? Could you fix it.

    Sorry for my english.
    Thank you in advance.
    Regards, Artur

  25. Paul says:

    Hi Jos,

    great script! Very useful and time saving :)

    I have two suggestions:

    -can you add a rename after/during import option for fbx files? When i have multiple fbx files and they contain objects with the same name, the objects with the same name will not import.

    -Is it possible to add a rotate pivot 90 degrees option to the export options? When exporting files from 3ds max to Unity, I always need to rotate the pivot along the X-axis myself to have the rotation within Unity at 0,0,0 for all axes. This is due to the fact that Unity and 3ds max use a different coordinate system (y-up vs z-up )

    I hope you can incorporate these features in the plug-in, it would save even more time me :)

    Regards, Paul

  26. dan says:

    Hey Jos,

    Great script, Just curious on the groups function- In max 2014 It doesn’t seem to automatically save groups to one file unless I check ‘collapse groups’, but collapsing a group to a single mesh isn’t always ideal.

    Thanks again for making this available!

    • Jos says:

      Can you try with closed and opened groups? One should work. I should add an option where you can ignore open groups or not (think it always ignores them). Let me know!

      • dan says:

        Hey Jos,

        tried your suggestion-
        Fresh scene, three spheres (two are grouped), no dialog options checked, saving to fbx

        If I ‘export all’ with open or closed groups I get 3 separate fbx files.

        With open group, if I select the three spheres, but not the group helper, and ‘export selection’, I just get one fbx file of the ungrouped sphere.

  27. J says:

    Thank you so much, this is my lifesaver!

  28. mash says:

    splines export .max …

  29. Vasily says:

    Thanks alot! Great script! But I’ve got an issue with groups. The exporter just ignore them if “Collapse groups” is not checked, instead of merging objects in one file. Max 2015.

  30. James says:

    Installed the script OK under Max 2015 but when I run it I get the following statement:

    “– Runtime error:fileIn: can’t open file – “C:\Program Files\Autodesk\3ds Max 2015\scripts\josbalcaen_batch_exporter_importer.mse.”

    • Jos says:

      Hi, if you drag the script in max or run it via MAXScript – Run script, does it work?
      Can you double check if the file is at the printed path?

  31. Dan says:

    Hey, I’ve just started using your script for unreal, and have noticed that if i export a batch of fbx it seems to change the scale of the exported meshes. If I change nothing and just export a single mesh, the mesh’s scale does not change ?

    Am I doing anything wrong?

    Cheers
    Dan

    • Jos says:

      Hi Dan, If you leave reset geometry checked it resets the scale of the object. So scale information will get lost. If you’ve previously exported those with scale, they will indeed change in the editor. I wouldn’t recommend exporting objects with scale applied to unreal. Let me know if you need more information! Jos

      • Dan says:

        Hey thanks for the reply. reset scale is off, the only thing i have checked is zeroing the meshes. I made sure everything is set to 100% scale, and the x forms have been reset and I still get the problem when batching the export. It still works fine if I export the meshes individually.
        Cheers
        Dan

  32. jose says:

    It’s possible import the meshes with a nesting distribution?. This mean import the objects without intersection o collision. ThanKs!

  33. jose says:

    It`s fantastic! It`s posible when import meshes to do a automatic nesting? this is for not to put mesh over mesh. Thanks!!

  34. david says:

    Thanks for the script! but when I try to import multiple OBJ files, I receive a dialogue with Import Name Conflict. Then have to hit the OK button for each entity.
    Is there an option to automatically rename, or an ‘apply to all’ type of function during the import process?

    Thanks again!

  35. Andre says:

    Great work! Exactly what I needed.
    Just one think could be improved. I was trying to import multiple .iam files from Inventor, everything works fine, but the import options works just on the first object select. For example, I selected 3 objects and set mesh resolution to 10, what happens is that just the first object receive this information. I was wondering if it is possible to fix it.

    Thanks!

    • Jos says:

      Can you try to run 3ds max with administrator rights and try again? I have the feeling it only remembers the export settings if you’re running max with admin rights.. Let me know!

      • Hamill says:

        I´m having a similar problem, but in my case when importing Illustrator .ai files. I would like to import them as “Single Object” in “Shape Import” dialog of the Illustrator importer. It seams it only remember the option for the first file. I´m running max2015 as administrator.

        If you could have a look at this, you will save my life as I have to convert thousands of .ai files to dxf.

        When exporting, everything goes fine.

        Really, really nice plugin indeed. Congrats.

        • Jos says:

          Unfortunately I don’t have access to the import settings of the Adobe Illustrator importer. It’s probably just using the default. If you do it manually twice, does it saves the option the first time? I don’t have illustrator so can’t test. If you send me some files I’ll have a look. Cheers, Jos

          • keddefar says:

            Ran into the same issue – found out that if prompting is turned on MAX can remember your last choice of options – so wrote a really simple importer ( below ) and held down the enter key

            ais = getfiles “c:/temp/illu3/*.ai”

            for f in ais do
            (
            importFile f
            )

          • Jos says:

            That’s interesting, I might be able to simulate the enter press..

  36. Luke says:

    Hi,

    Having some issues. I am using the script in 3ds max 2014 and each time I import several OBJ’s at the same time (with both the import or merge options), it tries to replace the whole scene and asks each time “The scene has been modified. Save changes?” for every new OBJ is attempted to be imported)

    This results in no meshes at all being in the scene.

    http://puu.sh/9qhTb/a0215fecbc.png

  37. Ballboy says:

    Thanks! Exactly what I was looking for.

  38. Jacques says:

    I want to say, Great work on this script. Amazing Work.

  39. Adriaan says:

    this script would be powerful if you can have it import and export at the same time… ie.. .3ds to .max converter

  40. LK says:

    Hey thanks for the script! This is a huge time saver and works like a charm!

  41. Julien Gobin says:

    Hello,

    I got some issue when i try to export my scene due to some object named this way SOMETHING/1-”SOMETHING.

    I can rename this objects :/ (names are used has id in project). It is possible to allow a better name override during export ? (like something_number_something) ?

    (sorry for my bad english ^^’).

  42. Ant says:

    Thanks for the scriptI believe i used this before and did successfully batch a folder relatively easily. Anyway… just wanted to give you kudos for being generous enoug to share and also the neat point-cloud eyecandy in your site header. Maybe, when i become powerful one day… I’ll be sure to enlist your help–hehe. Again Thanks a lot!

    Cheeers,
    Ant

Leave a Reply to Sven Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>