# Separator ![StandardLibraryMenu_Separator.png](https://simulemos.cl/uploads/images/gallery/2019-04-Apr/scaled-840-0/QMXqB427nmUmW7qA-StandardLibraryMenu_Separator.png)
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**
Este objeto tiene como función principal la de separar un batch de su entidad padre (ver [Combiner](https://simulemos.cl/link/8#bkmrk-este-objeto-permite-)). Cuenta con un nodo de entrada (*Input*) y dos nodos de salida: el primero para la entidad padre (*ParentOutput*) y el segundo para las entidades miembro (*MemberOutput*). Cada nodo de salida cuenta con su respectiva cola o buffer de salida. #### Modos de operación (*Separation Mode*) A pesar de que por defecto este objeto opera como el inverso al [Combiner](https://simulemos.cl/books/simio/page/combiner "Combiner"), en realidad tiene 3 modos de operación o de separación. Además, este objeto permite asignarle un tiempo de proceso, este se especifica en la propiedad **Processing Time**. - **Separar** (*Split Batch*): Modo por defecto. Funciona de forma inversa al Combiner: recibe en su nodo de entrada a una entidad padre con su batch, lo procesa y los separa, saliendo la entidad padre por el nodo de salida *ParentOutput* y las entidades miembro por el nodo *MemberOuput*. Este modo permite especificar por medio de la propiedad, **Desired Split Quantity**, cuántos miembros serán removidos del batch. Si el batch es más grande que la cantidad definida, la entidad padre saldrá del objeto con las entidades que no fueron removidas (sigue teniendo un batch, pero con menos entidades). - **Copiar** (*Make Copies*): Este modo hará que el Separator cree copias de la entidad entrante. La cantidad de copias a crear se define en la propiedad **Copy Quantity** y el tipo de entidad se define en la propiedad **Copy Entity Type** (por defecto creará una copia del mismo tipo). La entidad original sale por el nodo *ParentOutput*, las copias por el nodo *MemberOutput.* Simio se encargará de copiar los valores de los atributos desde el original a las copias. - **Crear** (*Create New*): Similar al modo de copia, pero sin copiar los atributos. La cantidad a crear se define en la propiedad **New Entity Quantity** y el tipo en la propiedad **New Entity Type***.* La entidad original sale del objeto usando el nodo *ParentOutput* y las nuevas entidades usando el nodo *MemberOutput*. #### {{@2#bkmrk-tipos-de-capacidad-%28}} {{@2#bkmrk-la-capacidad-represe}} {{@2#bkmrk-fija-%28fixed%29%3A-la-cap}} ![StandardLibraryGIF_Separator.gif](https://simulemos.cl/uploads/images/gallery/2019-04-Apr/Uv6uZuPJmZOoylEQ-StandardLibraryGIF_Separator.gif) ![StandardLibraryFacility_Separator.png](https://simulemos.cl/uploads/images/gallery/2019-04-Apr/scaled-840-0/1kn05gzHrFJ6V6jw-StandardLibraryFacility_Separator.png) Objeto Separator visto en vista Facility (2D) #### Algunas propiedades
**Propiedad****Tipo****Descripción**
Separation ModeListModo de operación. Ver [arriba](#bkmrk-modos-de-operaci%C3%B3n-) para más detalles.
Desired Split QuantityExpressionNúmero de entidades a extraer del batch.
Removal OrderListOrden en que se remueven las entidades del batch. LastBatchedFirst: LIFO FirstBatchedFirst: FIFO
Copy QuantityExpressionNúmero de copias a crear.
Copy Entity TypeNombre de entidadTipo de entidad a crear.
New Entity QuantityExpressionNúmero de entidades a crear.
New Entity TypeNombre de entidadTipo de entidad a crear.
Initial CapacityExpressionCapacidad 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 TimeExpressionCorresponde al tiempo que toma transferir una entidad al Separator.
Off Shift RuleListIndica 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.
#### Add-On Process Triggers
**Trigger****Descripción**
Run InitializedOcurre cuando la simulación es iniciada.
Run EndingOcurre cuando la simulación está terminando.
EnteredOcurre cuando una entidad ha entrado al objeto y está por empezar el *Transfer-In Time.*
Before ProcessingOcurre cuando le ha sido asignada capacidad del Separator a la entidad pero esta aún no ingresa a la estación de proceso.
ProcessingOcurre cuando la entidad padre ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento.
After ProcessingOcurre cuando la entidad padre ha completado su procesamiento y está por salir de la estación de proceso.
Parent ExitedOcurre cuando una entidad padre ha salido del objeto.
Member ExitedOcurre cuando una entidad miembro ha salido del objeto.
FailedOcurre cuando este objeto ha fallado.
RepairedOcurre cuando este objeto ha sido reparado.
Evaluating Seize RequestOcurre 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 ShiftOcurre cuando el objeto está al inicio de un turno definido en su *Work Schedule.*
Off ShiftOcurre cuando el objeto está al término de un turno definido en su *Work Schedule.*
####