Over the last month or so I've been working on an Alteryx project with a single client, this project is fairly complex and includes the development of 5 Analytical Applications (3 of those are part of the same chained application) and 23 macros (including macro's which may refer to one another).
The piece works fine, but when it comes to debugging, or feature enhancement, I need to get an understanding of how each of the assets relates to one another, so for this purpose I decided to build an Alteryx Application, which can be found, and downloaded from, the Alteryx Public Gallery.
The application is designed to be pointed at a directory, which it will then scan, looking for any assets with the .yxmd, .yxmc and .yxwz file extensions).
Given these filetypes are essentially glorified XML documents we can actually input them into Alteryx and identify what Alteryx assets they themselves are pointing at. This blog highlights how you can read in .twb files into Alteryx, Alteryx filetypes can be read in the exact same way.
In order to identify references of a macro within a macro/workflow/application then we must look for data within the 'Engine Settings Macro' XML element.

This can easily be extracted via a simple RegEx statement, with the RegEx tool in parse mode...
<EngineSettings Macro='(.+\\.yxmc)' />
Here we can see how the file 'Build Lego Portrait - App' (Which is an analytic application) contains three macros.

To bring this into a standard network format, it will be best to rename the 'FileName' column to 'To', and the 'Asset' field to 'From'.
Next, it's time to bring in any links between applications (i.e. via chained applications).
In a chained application, the reference to the next application is made in the 'Wiz_ChainRunWizard' element, which can be extracted, again via RegEx in parse mode, with the following statement...
<Wiz_ChainRunWizard>(.+\\.yxwz)</Wiz_ChainRunWizard>

This time however, I'd actually say the 'Filename' column should represent the asset (and therefor 'From' link), and the application found within the XML should represent the 'To' link, because that is the dependency order.

At this point, I can now blend the two streams together and begin building our network chart, however, before I do this there is one thing I must be aware of; that is, an asset not within our directory could be in either the 'From' column (in the case of searching for macros), or the 'To' column (in the case of searching for chained apps).
In the application I have given the user the option to remove such instances from our analysis (via the 'Include macro assets that are not part of directory?' in the user interface).

There are two output's for this application, the first is a simple data table which gives each of the 'From' and 'To' relationships between our assets.
The 2nd is perhaps more interesting, or at least more visually appealing (considering is built off the above table), it is an interactive network chart, rendered from the network analysis tool using the methodology outlined in this blog.
Here I have performed the analysis on one of my personal projects which involved many macros alongside a single master application.

Important note; the application links assets by name and extension only, and does not include the directory when creating links.