Since you are using 10.1, I experimented with SelectLayerByAttributes. I found it easiest to code to work with one geodatabase (the one in your zip file). I first ran a script to get a list of the unique attributes used in the DRAWING_REFERENCE fields of all the features in the gdb. Since the drawing reference is rather long, I paired it with a shorter substring. This is what the gdb looks like in catalog:
Each feature is appended with the short substring; in this case, GF is highlighted. Here's the code:
import arcpy
import os
gdb = r'C:\Path\to\COBW_Firealarm.gdb'
arcpy.env.workspace = gdb
fields = ['DRAWING_REFERENCE']
draw_ref = [
[ '111-111-AP','AP' ],
[ 'C0500-GS-0117-04-EL-FA-A0-01-001-001', '01' ],
[ 'C0500-GS-0117-04-EL-FA-A0-02-001-001', '02' ],
[ 'C0500-GS-0117-01-EL-FA-A0-03-001-001', '03' ],
[ 'C0500-GS-0117-04-EL-FA-A0-04-001-001', '04' ],
[ 'C0500-GS-0117-04-EL-FA-A0-05-001-001', '05' ],
[ 'C0500-GS-0117-04-EL-FA-A0-06-001-001', '06' ],
[ 'C0500-GS-0117-01-EL-FA-A0-B1-001-001', 'B1' ],
[ 'C0500-GS-0117-04-EL-FA-A0-B2-001-001', 'B2' ],
[ 'C0500-GS-0117-04-EL-FA-A0-GF-001-001', 'GF' ]
]
for fds in arcpy.ListDatasets('','Feature'):
print "\nProcessing {}".format(fds)
for fc in arcpy.ListFeatureClasses('','',fds):
print "\t{}".format(fc)
in_fc = os.path.join(gdb,fds,fc)
if arcpy.Exists('temp_layer'):
arcpy.Delete_management('temp_layer')
arcpy.MakeFeatureLayer_management(in_fc,'temp_layer')
ref_num = 0
for dr in draw_ref:
arcpy.SelectLayerByAttribute_management('temp_layer',
'NEW_SELECTION',
where_clause = "DRAWING_REFERENCE = '{}'".format(dr[0]))
count = int(arcpy.GetCount_management('temp_layer').getOutput(0))
if count > 0:
ref_num += 1
new_fc = os.path.join(fds, "{}_{}".format(fc,dr[1]))
print "\t\t{} -- count: {}".format(new_fc,count)
arcpy.CopyFeatures_management('temp_layer', new_fc)
print "\t\t{} total new features".format(ref_num)
arcpy.Delete_management('temp_layer')
print "\nDone."
For the next steps, you can use a script to loop through the draw_ref list, making a copy the first gdb, deleting the features that don't match the current value in the draw_ref list, and repeat until each drawing reference has its own gdb.
Hope this helps.