Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by ShawnNevers

  1. You could also use the Release Batch Early Triggers to recheck the condition after an event.
  2. I think if you set the max to 30, if 14 are generated all 14 (or other <30 number) will enter the workers ride queue and will be transported. You could also keep the ride capacity at 1, model the 14 pallets as 1 entity (lets call this a shipment entity), have the worker move that 1 entity to the next location, and then use a separator to turn the shipment entity into some number of pallet entities. Attached is an example. example 9.23.22.spfx
  3. You are not going to want to change the capacity of the worker, I think the definition of a worker is that is has a capacity of 1 (onshift) or 0 (offshift). What you are going to want to change is the Transport logic's "Initial Ride Capacity" to a number larger than 1. That property affect the RideStation capacity in the worker object.
  4. A quick solution to force all entities to get dropped at the same place is to add an add-on-process when an entity is loaded. which Checks if the entity is the first item in the vehicle and if not set its destination node to the first item. Decide: Token.associatedobject==Token.ContextObject.Vehicle.RideStation.Contents.FirstItem If False -> SetNode: Token.ContextObject.Vehicle.RideStation.Contents.FirstItem.ModelEntity.destinationnode a more elegant solution would probably involve batching the entities into a bucket that would then get transported to the destination. Upload 11.1.21.spfx
  5. I am wondering if there is a way to end all tasks in a task sequence when a ModelEntity transfers out of the station. I tried setting the Token Action On Associated Object Transferred to EndProcess but I guess that only works upon exiting the current step.
  6. Simulation Setting: Hospital Situation: In a hospital setting tasks are done in a preferred order on a patient, currently using processing tasks functionality to accomplish this. However if a certain task can not be done due to a resource constraint they should continue with the task profile but queue the task to be done when available. For example: if a patient needs to be intubated but no qualified person is available, the patient should continue with the task profile but should continue with trying to seize a qualified person, and when they can the task could continue as normal. Is there currently a way to do this? Thank you.
  7. You are correct that it will keep the resource seized until after the delay. A work around would be to subclass the server and change the PerformProcessingTask. All you would need to do is move the execute task to after the release, then it should release the resource and then do the execute (Your Add-on process).
  8. Assuming you are are using the prebuilt task sequencing logic in the server you could just add an add-on-process either after the predecessor task or before the successor task that delays for the given amount of time. If you are using a table to read these tasks add a column for the delay, make a model level process with a delay value of TaskTable.Delay. Then reference this process in the Before starting task or after completing task of the task sequence.
  9. My model currently reads tasks from a table and I am trying to model material consumption. For each task there are groups of materials: A, B, C, and priority values: 1, 2, 3. To complete a task, only one material type from each group A, B, and C must be consumed, and the order they are consumed in should be based of the priority. For example, if task one had entries like the table below, if all materials were available, materials 1,4,6 would be consumed. If material 1 was no longer available materials 2,4,6 would be used, and if material 6 was not available the task could not be done. The material requirement section in the processing task editor does not seem to support groupings and priority and was wondering if anyone had an idea on how to accomplish this. Task MaterialName Group Priority Quantity Task1 Material1 A 1 1 Task1 Material2 A 2 2 Task1 Material3 A 3 1 Task1 Material4 B 1 1 Task1 Material5 B 2 3 Task1 Material6 C 1 1
  10. Is there a way to keep them in the loop until the transport arrives, there will never be a point where they are done with the loop until the transport gets there. Right now if they are in the loop I can assign them a modelentity state variable (boolean), then when a vehicle arrives it initiates a process that has a search step with the search condition modelentity.BooleanStateVariable==1 with a return limit of the capacity of the vehicle. the found entities must either interrupt the task or process they are currently doing depending on where they are in the loop and be moved by a worker to the evac node. If that seams like a plausible solution, I just need a process step that can completely cancel a task sequence because the interrupt and suspend steps do not seem to apply to tasks. Once the task sequence is suspended the modelentities should flow to the destination node no problem after leaving the server.
  11. We are building a model of a medical facility where some patients need to be evacuated out of the model using a vehicle. In its current state, when a patient is in the ward or ICU, it will be determined if they need to evacuate. While they are waiting for an evacuation transport, they will be in a task sequence loop. We would like some way for the patient to seize a spot on the transport, perform the tasks loops, and once the transport arrives at the facility transfer node, the patients break out of their loop, and seize a worker to be carried to the vehicle. We have patients looping correctly and workers carrying the patients to the transport node, but they are not waiting for the vehicle to arrive. Having a condition that breaks the loop when the vehicle is in the loading node is not working because as it leaves its current node does not update quickly enough so entities go to the node that then are not picked up. A potential solution we found was to use the MinimumDwellTimeExpired State variable for the Evac transport in the loop conditional (If transport is dwelling then do not continue the loop and get routed to the transport, if it is not dwelling stay in the loop), however this variable is not public with no apparent way to make it so. We have also tried to make a function in the vehicle to try and mirror the state variable value, but this also did not seem to work as it does not update during the run.
  • Create New...