Une activité primitive (PrimitiveActivity) met en oeuvre une opération (Operation) sur des entités, élément ou composants du système simulé. Ces entités sont spécifiées par une instance de OperatedObjectSpecification, valeur du descripteur OperatedObjectSpecAttribute de l'activité.
Pour pouvoir poser et faire jouer des contraintes sur la disponibilité de ces entités à être opérées, il faut que la procédure "moteur" d'allocation puisse les percevoir comme des ressources, même quand elles ne sont déclarées comme telles (c'est-à-dire instance de Resource). Par exemple une activité qui opère une pièce est censée mobiliser cette pièce, laquelle devient indisponible pour être opérée par une autre activité.
A cette fin, la procédure d'allocation, et plus précisément le service attaché à la spécification d'objets opérés et qui la "développe", encapsule chaque entité dans une instance (indirecte) de la présente classe OperatedObject :
- OperatedResource si l'entité est déjà une ressource,
- NonSpecialOperatedObject sinon.
Cette classe est en outre dotée de descripteurs et de services qui permettent de "tracer" et d'accéder à l'évolution des quantités et des proportions opérée et non encore opérées des entités :
- La valeur de ces descripteurs est établie par le moteur de simulation, et le code de l'application n'intervient normalement pas dans ce processus.
- Par contre, le code de l'application peut trouver intérêt à connaître ces valeurs.