Also, I've posted a script that produces the exact same output, but using a JSON source rather than an outline.
-----
Unlike most flow charts, taxonomy charts have a purely hierarchical structure. This script creates such a chart.
Below is a taxonomy of the genre Rock/Pop (according to the music service Rhapsody) created by this script.
Although it would have been nice (and would have made the scripting much simpler) to have used OmniOutliner to provide the data for this chart, I didn't want to spend the $30 it costs, and I figured most people who use OmniGraffle don't have OmniOutliner.
Instead, the data is drawn from a file placed on your desktop. By default, this file is called drawtree.txt, but you can change that in the SETTINGS properties at the top of the script.
The text in that file to create the chart above:
o Rock/Pop
oo Roots
ooo Cajun/Zydeco
ooo Tex Mex
ooo Swamp Pop
oo Classic Rock
ooo Adult Oriented Rock
oo Art & Progressive Rock
ooo Rock Opera
ooo New Prog
ooo Krautrock
oo Blues & Boogie Rock
ooo Boogie Rock
ooo Southern Rock
oo Glam
oo Hard Rock
ooo Post-Grunge
ooo Instrumental Guitar Rock
ooo Acid Rock
oo Instrumental Rock
oo Pop
ooo Dance Pop
ooo Teen Beat
ooo Teen Idols
oo Jam Rock
oo Latin Pop
oo Country Rock
oo Funk Rock
oo Metal
ooo Progressive Metal
ooo Thrash/Speed Metal
ooo Stoner Rock
ooo Doom Metal
ooo Pop Metal
ooo New Wave of British Heavy Metal
ooo Black Metal
ooo Death Metal
ooo Funk Metal
ooo Industrial Metal
ooo Christian Metal
ooo Rapcore
ooo Alt Metal
ooo Metalcore
oo Folk-Rock
ooo Political Rock
ooo Celtic Rock
oo Adult Alternative
oo Adult Contemporary
ooo Blue-Eyed Soul
ooo Modern Folk
ooo Lite Rock
ooo Jazz Rock
Note: there must be a space between the string of o's and the label following it. Also, children directly follow their parent in this list. If you compare the list above to the chart above, you'll get the gist of it.
There are customizable options at the top of this script. These all start with the prefix "SETTINGS_".
Note that this script doesn't do a whole lot of error checking. If there's a problem with the text (e.g., no space between the string of o's and the label, skipping a hierarchy level, etc.), the script will probably fail. I've tested this on several large charts with no error, so if the script errors out, verify your data.
If you've verified your data and there's still a problem, leave your data in a comment here and I'll investigate.
The script follows the jump. Copy it, paste it into AppleScript Editor, and run it.