Showing which .mxd(s) a shapefile, feature class, table or imagery is used.

05-19-2014 07:45 AM
Status: Open
Labels (1)
New Contributor II

While in ArcCatalog, the user would click on a data file, let's say Rivers.shp. The user could then see the .mxd(s) where Rivers.shp is used. This is basically a backwards functionality of the "set data sources" window for an .mxd. 

This would be useful for data cleanup, especially when there are many data files and .mxds spread throughout a network.

This would be useful, but I think it might be very hard to impliment.  MXD files point to data so it is easy to find what shape files / data sources a single mxd is consuming, but it would be hard to go the other way.  For example:
  • ArcMap could maintain a database to maintain this backward compatibility, but that does not work in a multi-user environment.  What would happen if user A saves an mxd on their desktop that points to data on the server.  User B would be unaware of it.
  • ArcMap could maintain a separte file of mxds that link to A shapefile.  However how would ArcMap know if the list was deleted.

These ideas are not a perfect solution but might be quite useful:
  • In ArcCatalog have a tool that lists all the used datasets by searching through a directory and it's subdirectories for any mxds.  This tool then could create a report that states data layers are used.  Unfortunatly, I dont think it would be easy to inspect mxds on other users personal computers, but it is a step in the right direction.  I know I would be intrested in this tool.
  • Have ArcCatalog keep a log of moved and renamed files.  If a user opens up an mxd with a broken layer then the repair datasource tool could prompt a user with: "The layer 'my rivers' has been moved from H:\Data\rivers.shp to H:\Data\Hydrology\rivers.shp.  Would you like to use this new location as the data source?" 
@lygismav: The concerns you brought up are valid, it would be a tough tool to implement, especially across networks. I like the solutions you mentioned, though not exactly what I had in mind, they seem to be more feasible.
I agree, this would be extremely difficult to implement especially across multiple networks.  Whilst your idea is a good one I believe it is not viable.

I had to restructure a clients GIS system a year a go and I looked at the voyager software on this web site as a means of answering that very same question. I played around with the demo version, it appears to offer the solution you require if your are willing to spend the money.

But it was outside the budget of the project and now arcpy offers the ability to extract such information from MXD's and workspaces I wrote a script that trawled their GIS folder creating text files of whats in what and it was a matter of querying this files.

You also get into the nutty situations like users adding the same dataset to a MXD but with different featurelayer names or duplication of a dataset across multiple projects folders, exactly the sort of think you are trying to clean up.
While I can see the problems out lined below.  It would be really helpful if there was a tool where I could select a data file, a directory/folder and the output would be a lits of mxds where the data file was used.  I wouldn't expect the tool to search the whole server, my desktop and everyone else desktop, only the folders/subfolders I am interested in.