Thanks for the sample code, I've been searching for something like this for a long time. I listed below the possible enumerations for the parameters action, entity type, criterion and operator, hope it helps:
# Action
# ------
# enum SelectionActionType, values:
# Add (4),
# Convert (5),
# Filter (1),
# Invert (3),
# Remove (2)
# Entity Type
# -----------
# enum SelectionType, values:
# GeoBody (1),
# GeoEdge (3),
# GeoFace (2),
# GeoVertex (4),
# MeshEdge (8),
# MeshElement (6),
# MeshElementFace (9),
# MeshFace (7),
# MeshNode (5)
# Criterion
# ---------
# enum SelectionCriterionType, values:
# AllEdges (35),
# AllNodes (18),
# AllVertices (33),
# AnalysisPly (27),
# AnyEdge (34),
# AnyNode (17),
# AnyVertex (32),
# Area (26),
# AspectRatio (19),
# CADAttribute (7),
# CrossSection (42),
# Distance (14),
# EdgeConnections (31),
# ElementConnections (30),
# ElementNumber (15),
# ElementQuality (16),
# FaceConnections (6),
# ImportedTrace (36),
# JacobianRatio (20),
# JacobianRatioCornerNodes (40),
# JacobianRatioGaussPoints (41),
# LocationX (3),
# LocationY (4),
# LocationZ (5),
# Material (11),
# MaximumCornerAngle (38),
# MinimumLength (39),
# Name (29),
# NamedSelection (9),
# NodeNumber (10),
# NormalTo (43),
# OffsetMode (13),
# OrthogonalQuality (24),
# ParallelDeviation (22),
# Radius (8),
# SharedAcrossBodies (37),
# SharedAcrossParts (28),
# Size (1),
# Skewness (23),
# Thickness (12),
# Type (2),
# Unknown (0),
# Volume (25),
# WarpingFactor (21)
# Operator
# --------
# enum SelectionOperatorType, values:
# Contains (13),
# Equal (1),
# GreaterThan (5),
# GreaterThanOrEqual (6),
# Largest (10),
# LessThan (3),
# LessThanOrEqual (4),
# No (12),
# NotEqual (2),
# RangeExclude (7),
# RangeInclude (8),
# Smallest (9),
# Unknown (0),
# Yes (11)