Hi this is my version of a tool for relinking (missing) bitmaps which can not be found for whatever reasons (changed paths, moved files etc.). It is pretty straightforward and works with almost any type of asset (maps, HDRIs, IES files) as long as it can be referenced and seen in the asset browser. Due to copyright restrictions I can not publish the code right now but I hope that it can help you anyways until max itself has a better management for assets.
This script allows you to manage and relink assets like texture maps,
environment maps, HDRIs etc.
It gives you an overview of all the bitmaps used in the scene along with their
status (found / not found) and allows you to easily set a new path for a map
or completely replace it by a different bitmap or a different location.
To do this, run the script via Menu -> MAXScript -> Run Script. When the window
opens, it automatically looks for missing items and displays them. By switching
the status to either "missing" or "all" you can toggle which files you want to
If you select an item it will visually show you its status with a small coloured
box (green = found, red = missing) and print further details in the info field
below the list. These details contain: Path, Map name, Map Type, Materials using
this map, objects using this map.
The path for the selected item(s) can be changed via the two buttons on the top
"Set path for selected item(s)" --> only change to a new path, keep bitmap name
for example: "d:\test.jpg" becomes "d:\temp\test.jpg"
"replace selected item(s)" --> change path and bitmap name
for example: "d:\test.jpg" becomes "d:\final.jpg"
--> refresh the map list. necessary when a scene was loaded while window was
open or manual changes were made
"recursive file search"
--> enables recursive file search. only top folder needs to be specified. the
script will automatically find the right file in one of the subfolders
"confirm each new path"
--> if activated, it will ask the user to confirm every replacement of a map
--> the old and new path will be given so the user has total control of which
asset to replace with which new asset
There is three more buttons below the map list. These become available when a map
has been selected in the list.
"Map To MEdit":
--> makes the currently selected map available in the current material editor
--> no more manually digging through the scene materials to modify a missing
map in the material editor
"Mat To MEdit":
--> makes the material that has the currently selected map in one of his slots
(diffuse, bump, etc.) available in the current material editor slot
--> selects all objects that contain or reference the map that is selected
--> this way all objects that have a missing map can simply be deleted from the
These three functions always refer to the currently selected map in the list.
Maps are sometimes not listed under the bitmap asset type because they are
implemented different from standard MAX bitmaps. If this happens, try
switching to "asset links" under "asset type". It might give you a better list
of what is used in your scene. If bitmaps are not listed in either "bitmaps"
or "asset links" then there will be no way to relink it via any script and these
need to be set manually (according to my humble knowledge). I experienced this
issue for example with maps in a FinalRender skin shader (Final Shader package)
and I could not find a way to detect those via scripting.
One requirement for the "asset links" to work is that the files have the same base
file name and just the path changed.Sorry but this seems to be a limitation of
MAX. It can only change the paths to these assets not the asset name itself.
If you find any bugs, if you have any comments, suggestions or critique please let
me know ! I am always looking for ways to improve tools !!
2013-03-01 Edit: fixed small bug