First: you should make a toolbox with a script set the parameters the name "List of Source Name" the data type "string" the filter "value list as in picture:

Second: select Validation the edit button write under the (def updateParameters(self)) the following:
def updateParameters(self):
#define the path of your feature class
fc="D:/000/test.shp"
#define the the name of the field
col= ("SOURCENAME")
self.params[0].filter.list = [str(val) for val in
sorted(
set(
row.getValue(col)
for row in arcpy.SearchCursor(fc, None, None,col)))]
if self.params[0].value not in self.params[0].filter.list:
self.params[0].value = self.params[0].filter.list[0]
return
Third: create a tool script and write the following:
import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
currentlayer = arcpy.mapping.ListLayers(mxd, "*") [0]
inputLayer = arcpy.MakeFeatureLayer_management(currentlayer)
TWN = arcpy.GetParameterAsText(0)
query = "SOURCENAME = '" + TWN + "'"
arcpy.SelectLayerByAttribute_management(currentlayer, "NEW_SELECTION", query )
count = arcpy.GetCount_management(currentlayer)
arcpy.AddMessage("thes selected are: "+str(count))
or you can write in the validation script the following:
def updateParameters(self):
#define the top layer in the mapview
mxd = arcpy.mapping.MapDocument("CURRENT")
fc = arcpy.mapping.ListLayers(mxd, "*") [0]
#define the the name of the field
col= ("SOURCENAME")
self.params[0].filter.list = [str(val) for val in
sorted(
set(
row.getValue(col)
for row in arcpy.SearchCursor(fc, None, None,col)))]
if self.params[0].value not in self.params[0].filter.list:
self.params[0].value = self.params[0].filter.list[0]
return