Identificar actividades obligatorias dentro de plan_version

Hola
Estamos trabajando sobre la versión 3.20.0
Estoy desarrollando una regla nueva, y necesito identificar el módulo al que pertenece un elemento, y la forma de cumplimiento del mismo.
Existe ya alguna función en las clases de php que pueda reutilizar para tal fin?
Caso contrario, cómo puedo identificarlo?
En realidad lo que estoy necesitando es de un grupo de materias (elementos) pertenecientes a un plan_version, poder identificar cuáles son las “obligatorias” dentro del mismo.

La estructura de los planes sería mas o menos así:

  • Ciclo Básico (Forma cumplimiento: REGLA 101 - Todas las Actividades Aprobadas)
    • Modulo A: (Forma cumplimiento: REGLA 101 - Todas las Actividades Aprobadas)
      • Actividad 1
      • Actividad 2
      • Actividad 9
    • Modulo B: (Forma cumplimiento: REGLA 101 - Todas las Actividades Aprobadas)
      • Actividad 10
      • Actividad 20
      • Actividad 50
      • Generica X (Forma cumplimiento: REGLA 100 - Por Puntaje (Aprobadas))
        - Optativa 1
        - Optativa 2
        - …
        - Optativa N
        -Módulo C (Forma cumplimiento: REGLA 110 - Todas las actividades son optativas)

Es decir, la Genérica X sería “obligatoria” (no así las optativas específicas)

Por otro lado, qué función podría reutilizar para saber si dicha “Genérica X” un determinado alumno la tiene cumplimentada?

Muchas gracias!
Saludos.

Iris