# Standard Library La Standard Library, o librería estándar, es un conjunto de objetos predefinidos que representan elementos comúnmente utilizados en el desarrollo de modelos de simulación: servidores, calles, vehículos, trabajadores, entre otros. A pesar de que estos objetos son parte de Simio, su funcionamiento no es "mágico", ya que son creados dentro de la aplicación siguiendo las mismas técnicas que aprenderás tú. Simio sigue un paradigma de orientación a objetos, lo que habilita a un usuario avanzado a modificar el funcionamiento de los objetos de la librería o combinar varios de ellos creando así un "superobjeto”. A continuación puedes ver cada uno de los elementos de la Standard Library. # Source 
Objeto | **Source** |
Función | **Creación de entidades** |
Clase | **Fixed** |
Process Triggers | **Run Initialized, Run Ending, Creating Entities, Created Entity, Exited** |
Asignación de estados | **Before Exiting, On Balking, On Reneging** |
**Propiedad** | **Tipo** | **Descripción** |
Entity Type (Tipo de entidad) | Nombre de instancia de entidad | El tipo de entidad a generar. |
Arrival Mode (Modo de llegada) | *Interarrival Time, Time Varying ArrivalRate, On Event, Arrival Table* | El modo utilizado para generar el flujo de llegadas. |
Time Offset | Expression | Representa un tiempo a esperar antes de generar la primera llegada. |
Interarrival Time (Tiempo entre llegadas) | Expression | Intervalo de tiempo entre dos llegadas sucesivas. Esta propiedad suele ser especificada utilizando distribuciones de probabilidad. Ver [Distribuciones de probabilidad](https://simulemos.cl/books/simio/page/distribuciones-de-probabilidad "Distribuciones de probabilidad"). |
Entities Per Arrival (Entidades por llegada) | Expression (truncada a entero) | Número de entidades que serán creadas en cada llegada. |
Initial Number Entities | Expression | Número inicial de entidades a crear al comienzo de la simulación, adicionalmente a los creados en el modo *On Event.* No son incluidos en los *Maximum Arrivals.* |
Maximum Arrivals | Expression (truncada a entero) | Cantidad máxima de llegadas que generará este objeto. |
Maximum Time | Expression | Tiempo contado desde el inicio de la simulación hasta el cual el objeto dejará de generar llegadas. |
Stop Event Name | Event | Evento que al ser disparado hará que el Source deje de generar llegadas. |
**Trigger** | **Descripción** |
Run Initialized | Ocurre cuando la simulación es iniciada. |
Run Ending | Ocurre cuando la simulación está terminando. |
Creating Entities | Ocurre cuando el objeto está por crear una llegada. |
Created Entity | Ocurre cuando una entidad ha sido creada por el objeto. |
Exited | Ocurre cuando una entidad ha salido del objeto. |
Objeto | **Sink** |
Función | **Destrucción de entidades** |
Clase | **Fixed** |
Process Triggers | **Run Initialized, Run Ending, Entered, Destroying Entity** |
Asignación de estados | **On Entering** |
**Propiedad** | **Tipo** | **Descripción** |
Transfer-In Time | Expression | Tiempo requerido para transferir una entidad a este objeto. |
On Entering | Assignments | Estados a asignar cuando una entidad entra en el objeto. (Opcional) |
**Trigger** | **Descripción** |
Run Initialized | Ocurre cuando la simulación es iniciada. |
Run Ending | Ocurre cuando la simulación está terminando. |
Entered | Ocurre cuando una entidad ha entrado al objeto y está por empezar el *Transfer-In Time.* |
Destroying Entity | Ocurre cuando una entidad está a punto de ser destruida por el objeto. |
Objeto | **Server** |
Función | **Procesamiento de entidades** |
Clase | **Fixed** |
Process Triggers | **Run Initialized, Run Ending, Entered, Before Processing, Processing, After Processing, Exited, Failed, Repaired, Evaluating Seize Request, On Shift, Off Shift** |
Asignación de estados | **On Entering, Before Processing, After Processing, Before Exiting, On Balking, On Reneging** |
**Valor** | **Estado** |
0 | Disponible |
**1** | Procesando |
**2** | Bloqueado |
**3** | Falla |
**4** | Fuera de turno |
**5** | Falla de procesamiento |
**6** | Procesando fuera de turno |
**7** | Setup |
**8** | Setup de turno |
**Propiedad** | **Tipo** | **Descripción** |
Capacity Type | Fixed, Work Schedule | Indica el tipo de capacidad del Server. |
Initial Capacity | Expression | Capacidad inicial del Server. Se evalúa al comenzar la simulación. |
Ranking Rule | List | Regla estática a utilizar para ordenar las entidades en espera. |
Ranking Expression | Expression | Valor utilizado por las reglas *Smallest/Largest Value First* para ordenar las entidades. |
Dynamic Selection Rule | List | Indica si este objeto seleccionará de manera dinámica la próxima entidad a ser procesada utilizando una regla dinámica de selección. |
Transfer-In Time | Expression | El tiempo requerido para transferir una entidad a este objeto. |
Processing Time | Expression | Tiempo requerido para procesar una entidad. Normalmente asignado con distribuciones de probabilidad. |
Off Shift Rule | List | Indica la política que utilizará el objeto para determinar qué hacer cuando se acabe el turno y exista una entidad en proceso. *Suspend Processing*: se suspende el procesamiento y continua en el siguiente turno. *Finish Work Already Started*: no procesará nuevas entidades pero terminará las que se encuentran actualmente en proceso. |
**Trigger** | **Descripción** |
Run Initialized | Ocurre cuando la simulación es iniciada. |
Run Ending | Ocurre cuando la simulación está terminando. |
Entered | Ocurre cuando una entidad ha entrado al objeto y está por empezar el *Transfer-In Time.* |
Before Processing | Ocurre cuando le ha sido asignada capacidad del Server a la entidad, pero aún no ingresa a la estación de proceso. |
Processing | Ocurre cuando la entidad ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento. |
After Processing | Ocurre cuando la entidad ha completado su procesamiento y está por salir de la estación de proceso. |
Exited | Ocurre cuando una entidad ha salido del objeto. |
Failed | Ocurre cuando este objeto ha fallado. |
Repaired | Ocurre cuando este objeto ha sido reparado. |
Evaluating Seize Request | Ocurre cuando el objeto está determinando si aceptará o no la solicitud de capacidad por parte de la entidad. Para rechazar se debe asignar un valor negativo al *ReturnValue* del Token. |
On Shift | Ocurre cuando el objeto está al inicio de un turno definido en su *Work Schedule.* |
Off Shift | Ocurre cuando el objeto está al término de un turno definido en su *Work Schedule.* |
Objeto | **Combiner** |
Función | **Agrupación de entidades** |
Clase | **Fixed** |
Process Triggers | **Run Initialized, Run Ending, Parent Entered, Member Entered, Before Processing, Processing, After Processing, Exited, Failed, Repaired, Evaluating Seize Request, On Shift, Off Shift** |
Asignación de estados | **On Parent Entering, On Member Entering, Before Processing, After Processing, Before Exiting, On Balking, On Reneging** |
**Propiedad** | **Tipo** | **Descripción** |
Batch Quantity | Expression truncada a entero. | Tamaño del batch. Corresponde al número de entidades miembro que se deben esperar antes de agruparlas y asociarlas a la entidad padre. |
Initial Capacity | Expression | Capacidad inicial del Combiner. Corresponde a la cantidad de batchs que se pueden procesar de forma simultánea. Se evalúa al comenzar la simulación. |
Parent Transfer-In Time y Member Transfer-In Time | Expression | Corresponde al tiempo que toma transferir una entidad al Combiner. Estos tiempos corren de forma simultánea. Por ejemplo, si los tiempos de transferencia de la entidad padre y las entidades miembro son 1 y 2 minutos respectivamente, y, suponiendo que ambas llegan al mismo tiempo, entonces en el minuto 2 ambas estarán listas para ser procesadas. |
Off Shift Rule | List | Indica la política que utilizará el objeto para determinar qué hacer cuando se acabe el turno y exista una entidad en proceso. *Suspend Processing*: se suspende el procesamiento y continua en el siguiente turno. *Finish Work Already Started*: no procesará nuevas entidades pero terminará las que se encuentran actualmente en proceso. |
**Trigger** | **Descripción** |
Run Initialized | Ocurre cuando la simulación es iniciada. |
Run Ending | Ocurre cuando la simulación está terminando. |
Parent Entered | Ocurre cuando una entidad padre ha entrado al objeto y está por empezar el *Parent Transfer-In Time.* |
Member Entered | Ocurre cuando una entidad miembro ha entrado al objeto y está por empezar el *Member Transfer-In Time.* |
Before Processing | Ocurre cuando le ha sido asignada capacidad del Combiner a la entidad padre pero esta aún no ingresa a la estación de proceso. |
Processing | Ocurre cuando la entidad padre ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento. |
After Processing | Ocurre cuando la entidad padre ha completado su procesamiento y está por salir de la estación de proceso. |
Exited | Ocurre cuando una entidad padre y su batch han salido del objeto. |
Failed | Ocurre cuando este objeto ha fallado. |
Repaired | Ocurre cuando este objeto ha sido reparado. |
Evaluating Seize Request | Ocurre cuando el objeto está determinando si aceptará o no la solicitud de capacidad por parte de la entidad. Para rechazar se debe asignar un valor negativo al *ReturnValue* del Token. |
On Shift | Ocurre cuando el objeto está al inicio de un turno definido en su *Work Schedule.* |
Off Shift | Ocurre cuando el objeto está al término de un turno definido en su *Work Schedule.* |
Objeto | **Separator** |
Función | **Desagrupación, copia y creación de entidades** |
Clase | **Fixed** |
Process Triggers | **Run Initialized, Run Ending, Entered, Before Processing, Processing, After Processing, Parent Exited, Member Exited, Failed, Repaired, Evaluating Seize Request, On Shift, Off Shift** |
Asignación de estados | **On Entering, Before Processing, After Processing, Before Parent Exiting, Before Member Exiting, On Balking, On Reneging** |
**Propiedad** | **Tipo** | **Descripción** |
Separation Mode | List | Modo de operación. Ver [arriba](#bkmrk-modos-de-operaci%C3%B3n-) para más detalles. |
Desired Split Quantity | Expression | Número de entidades a extraer del batch. |
Removal Order | List | Orden en que se remueven las entidades del batch. LastBatchedFirst: LIFO FirstBatchedFirst: FIFO |
Copy Quantity | Expression | Número de copias a crear. |
Copy Entity Type | Nombre de entidad | Tipo de entidad a crear. |
New Entity Quantity | Expression | Número de entidades a crear. |
New Entity Type | Nombre de entidad | Tipo de entidad a crear. |
Initial Capacity | Expression | Capacidad inicial del Separator. Corresponde a la cantidad de entidades que se pueden procesar de forma simultánea. Se evalúa al comenzar la simulación. |
Transfer-In Time | Expression | Corresponde al tiempo que toma transferir una entidad al Separator. |
Off Shift Rule | List | Indica la política que utilizará el objeto para determinar qué hacer cuando se acabe el turno y exista una entidad en proceso. *Suspend Processing*: se suspende el procesamiento y continua en el siguiente turno. *Finish Work Already Started*: no procesará nuevas entidades pero terminará las que se encuentran actualmente en proceso. |
**Trigger** | **Descripción** |
Run Initialized | Ocurre cuando la simulación es iniciada. |
Run Ending | Ocurre cuando la simulación está terminando. |
Entered | Ocurre cuando una entidad ha entrado al objeto y está por empezar el *Transfer-In Time.* |
Before Processing | Ocurre cuando le ha sido asignada capacidad del Separator a la entidad pero esta aún no ingresa a la estación de proceso. |
Processing | Ocurre cuando la entidad padre ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento. |
After Processing | Ocurre cuando la entidad padre ha completado su procesamiento y está por salir de la estación de proceso. |
Parent Exited | Ocurre cuando una entidad padre ha salido del objeto. |
Member Exited | Ocurre cuando una entidad miembro ha salido del objeto. |
Failed | Ocurre cuando este objeto ha fallado. |
Repaired | Ocurre cuando este objeto ha sido reparado. |
Evaluating Seize Request | Ocurre cuando el objeto está determinando si aceptará o no la solicitud de capacidad por parte de la entidad. Para rechazar se debe asignar un valor negativo al *ReturnValue* del Token. |
On Shift | Ocurre cuando el objeto está al inicio de un turno definido en su *Work Schedule.* |
Off Shift | Ocurre cuando el objeto está al término de un turno definido en su *Work Schedule.* |
Objeto | **Connector** |
Función | **Enlazar nodos** |
Clase | **Link** |
Process Triggers | **-** |
Asignación de estados | **-** |
**Propiedad** | **Tipo** | **Descripción** |
Selection Weight | Expression | Expresión utilizada para definir la ponderación o peso que tiene este objeto a la hora de escoger un enlace al salir de un nodo. Ejemplo: Un enlace con el doble de peso que otro, tiene el doble de probabilidades de ser escogido. Si este valor es 0, las entidades nunca escogen el enlace, a menos que estén obligadas a hacerlo (Ejemplo: todos los pesos tienen 0 o solo hay un camino). **Puede ser una expresión lógica: Verdadero = 1, Falso = 0.** |
Objeto | **Path** |
Función | **Enlazar nodos** |
Clase | **Link** |
Process Triggers | **Run Initialized, Run Ending, Entered, Trailing Edge Entered, Reached End, Exited** |
Asignación de estados | **On Entering, Before Entering** |
**Propiedad** | **Tipo** | **Descripción** |
Type | List | El sentido del tráfico por este objeto. Puede ser unidireccional o bidireccional. |
Initial Traveler Capacity | Expression | La cantidad inicial de entidades que pueden ocupar simultáneamente este objeto. |
Drawn To Scale | Boolean | Especifica si se debe usar la longitud del objeto en la vista Facility para la lógica de la simulación. Si este valor es *False*, se debe especificar también la propiedad *Logical Length.* |
Logical Length | Double | Longitud del enlace cuando no se utiliza la escala de la vista Facility. |
Allow Passing | Boolean | Indica si las entidades pueden adelantarse entre ellas cuando sus velocidades difieren. |
Speed Limit | Double | Velocidad máxima a la que pueden viajar las entidades al utilizar este objeto. |
Selection Weight | Expression | Expresión utilizada para definir la ponderación o peso que tiene este objeto a la hora de escoger un enlace al salir de un nodo. Ejemplo: Un enlace con el doble de peso que otro, tiene el doble de probabilidades de ser escogido. Si este valor es 0, las entidades nunca escogen el enlace, a menos que estén obligadas a hacerlo (Ejemplo: todos los pesos tienen 0 o solo hay un camino). **Puede ser una expresión lógica: Verdadero = 1, Falso = 0.** |
**Trigger** | **Descripción** |
Run Initialized | Ocurre cuando la simulación es iniciada. |
Run Ending | Ocurre cuando la simulación está terminando. |
Entered | Ocurre cuando una entidad (su parte frontal) entra en este objeto. |
Trailing Edge Entered | Ocurre cuando la parte trasera de una entidad entra a este objeto. |
Reached End | Ocurre cuando una entidad (su parte frontal) ha alcanzado el final de este objeto. |
Exited | Ocurre cuando una entidad ha dejado el objeto. |