Professional Documents
Culture Documents
This tutorial is designed to teach you the basics of building a simulation model in FlexSim.
You'll create a simulation of a customer service center with the goal of making the service
center run more efficiently.
In this tutorial, you'll experiment with two different methods of model building that are
available in FlexSim: 3D modeling and Process Flow modeling. In the last stage of this
tutorial, you'll merge these two types of models together to make an even more powerful
simulation model that combines the best aspects of both methods.
When you're finished with this tutorial, you'll have a good general sense of how FlexSim
works and the basic tasks involved in building a simulation model. When you're finished,
your 3D model will look similar to the following image:
T asks Co vered
This tutorial will cover the following tasks:
TASK 1.1
Buil d a 3D Model
In this task, you'll learn some of the basics about navigating inside of the
FlexSim user interface while building 3D models. This task will give you some
hands-on experience with the most important elements of the 3D model
interface.
1
TASK 1.2
TASK 1.3
TASK 1.4
Fo r Mo re I nfo rmati o n
For more in-depth explanations of the concepts covered in these tutorials see:
2
TA S K 1 . 1 - B U I L D A 3 D M O D E L
Task Overview
1.Add Objects to the 3D Model
2.Connect the 3D Objects
3.Run the Model for the First Time
4.Create a List to Track Customers
5.Edit the Model's Logic
6.Run and Test the Simulation Model
Conclusion
T ask O vervi ew
One of the things that makes FlexSim unique is that it gives you the ability to create 3D
representations of business systems. While other simulation software can help you to build
theoretical models, FlexSim give you the ability to view your business system in a more
concrete way that is easier to understand and use. See Reasons to Use 3D Objects for a
deeper explanation of the benefits of 3D modeling.
In this tutorial task, you'll learn some of the basics about navigating inside of the FlexSim
User Interface while building 3D models. You'll get some hands-on experience with the
most important elements of the 3D model interface, as shown in the following image:
ST EP 1 Ad d Ob j ects to th e 3D Mo d el
The first step in building a 3D model is to build the basic layout of the business system
you're trying to simulate. The customer service center that you are modeling has a service
3
desk with one or more customer service representatives. Customers who arrive generally
line up near the window until they can be helped by an employee. In this simulation model,
you'll also simulate customers who leave early if the wait is too long.
To simulate all of these different elements, you'll add objects to the 3D model. Objects are
the basic building blocks of a 3D simulation model. Different types of objects have
different purposes and functions within the simulation model. Some of the most common
objects are:
Flow items - Objects that move (or "flow") through the simulation model, usually from
one station (typically a fixed resource) to another downstream station. In this simulation
model, the flow items will represent customer service center customers.
Fixed resources - Objects that remain stationary in the 3D model and interact with
flow items. Each fixed resource performs a specific function. This simulation model will
use a variety of fixed resources that will interact with the customers.
Task executers - Objects that can move around in the 3D model and perform tasks
such as transporting flow items, operating machines, etc. For now, you won't use any task
executers in your simulation model. You'll add task executers later in the tutorial.
In this step, you'll start by adding some fixed resources to your simulation model:
Object Explanation
Source Sources create flow items. You'll use the source to create customers,
which will represent their arrival at the customer service center.
Queue Queues store flow items until they can be sent to another object. The
queue will represent the waiting line at the customer service center.
4
Processo Processors process flow items, which is typically simulated as a time
r delay. The processor will represent the employee who will help the
customer.
Sink Sinks remove flow items from the simulation model. You'll use sinks to
represent customers leaving the customer service center. In this model,
you'll actually use two sinks: one to represent happy customers and one
for unhappy customers (the ones who left early).
1. Start a new simulation model. Find the 3D model area, which is located in the center pane
in FlexSim. Also find the Library, which is located in the left pane in FlexSim.
2. Drag the following objects from the Library into the 3D model:
o 1 Source
o 1 Queue
o 1 Processor
o 2 Sinks
3. If needed, move the objects so that they are approximately in the positions shown in the
previous image.
4. Click the Source to select it. Notice that the right pane changes to display the Quick
Properties for this object. Under the General Properties group, click inside the first
box, which displays the object's current name. Delete the object's current name and type a
5
new name: Customers Arrive. Notice that the display name for this object updates in the
3D model.
When you're finished, your 3D model should look similar to the following image:
6
ST EP 2 Co n n ect th e 3D O bj ects
In this step, you'll connect the 3D objects so that customers move from one object to the
next in the appropriate order. In other words, you will create the logic that will help items
flow from one fixed resource to another. There are several different methods for doing this
in FlexSim (see Connecting 3D Flows for more information). In this step, you'll learn how
to connect objects using port connections because it is the easiest and most straight-forward
method.
In FlexSim, a port is a point on an object where flow items can be transferred from one
object to another. A port connection is the connection between ports on two different
objects. Ports create relationships between objects that allow them to communicate with
each other and exchange flow items. See Key Concepts About Ports for more information.
In this model, you'll create input/output port connections from the Customers Arrive source
to the Waiting Line and from the Service Desk to the Happy Customers sink. You'll leave
the other objects disconnected for now because you will connect those flows using a
different tool later in the tutorial.
7
1. Click the Connect Objects button on the toolbar to open a menu.
Select Connect Objects to enter connection mode.
2. When you are in connection mode, your mouse pointer will change to a plus sign with
chain link symbol next to it:
3. Once you are in connection mode, you can connect two objects together. Click
the Customers Arrive source object. (You will notice as you move your mouse that a
yellow line will appear between the object you clicked and your cursor.)
4. Click the Waiting Line queue object to create the port connection between the two
objects.
5. You will still be in connection mode after connecting these two objects. If you wanted to
connect another object to the queue, you would stay in connection mode. But since you're
done connecting the queue to objects, simply press the Esc key to exit connection mode.
6. You'll turn on connection mode one more time, but this time you'll use a shortcut. Press
and hold the A key, then click the Service Desk processor and then click the Happy
Customers sink to create another connection.
When you're finished, your 3D model should look similar to the following image:
8
ST EP 3 Ru n th e Mo d el fo r th e Fi rst T i me
In this step, you'll try running the model at this point to see what happens when you run a
model. For now you'll just run the model for the first time, but a later step in this tutorial
will explain why and how to run a model in more depth. To run the model:
1. Press the Reset button on the simulation control bar, which is just beneath the main
toolbar.
At this point, you'll see the source (Customers Arrive) create flow items (which look like
boxes at this point) and place them in the Waiting Line. Since you haven't created any logic
that will move these flow items, they'll simply stack up inside the queue until you stop the
simulation.
9
In the previous step, you learned how to connect the flows of objects using port
connections. In this step, you'll learn how to use a tool called global lists to create more
complex flows between fixed resources.
In this model, the flow items will represent customers. When customers enter the waiting
line, they will be added to a list of waiting customers, which will track how long customers
have been waiting. The service desk will help the customers who have been waiting the
longest first. However, customers who have waited more than 200 seconds will get
frustrated and leave through the Unhappy Customers sink. To create this functionality,
you'll use a global list, which can filter and prioritize flow items using sophisticated sets of
criteria. (See Key Concepts About Lists for more information.)
In this step, you'll set up a flow item list and name it WaitingCustomers. You'll create this
list using the Toolbox, which is the place where you can access nearly every tool in
FlexSim. (See Using the Toolbox for more information.)
When you create a list, you first need to set up its fields. Fields determine which
information the list will track. By default, item lists come with four default fields, each with
pre-programmed logic. These fields are merely suggestions for what kind of fields you
might want on a flow item list. You can delete these fields or add other pre-programmed or
custom fields as needed.
One of the default fields is the age field, which tracks the amount of time that has elapsed
since that flow item was created by the source. While this field would probably work for
this list's logical needs, it might be better to add an ageInQueue field for more accuracy.
The ageInQueue field tracks the length of time the item has been on the list. In other words,
it will track the length of time that has passed since the customer joined the waiting line.
You'll add this field in this step.
1. Look in the left pane where the Library is located. Near the top of this pane, you'll see a
tab called Toolbox. Click this tab to open the Toolbox.
2. In the Toolbox, click the Add button to open a menu. Point to Global List, then
select Item List. The new list's properties window will automatically open.
10
5. Press the Delete button next to all the other fields to remove them to remove since
they are unnecessary.
6. Now you'll change the name of the ageInQueue field to something more descriptive. Click
the Expression Field box, delete the current text, and change its name to WaitTime.
Your new Waiting Customers list should now appear under the Global Lists group in the
Toolbox.
Object Explanation
Customers Most 3D models begin with a source object that creates the flow
Arrive items that will move through the 3D model and interact with objects.
(Source) In this model, the flow items will represent customers coming to the
customer service center.
The source will determine how frequently customers arrive. For this
model, you'll change the arrival rate for customers so that a customer
arrives approximately every minute. You'll use a statistical
distribution called the exponential distribution to randomly calculate
the arrival rate within a range of times averaging around 60 seconds.
By default, the source creates flow items that looks like boxes. Since
the flow items in this model represent customers, you'll change the
flow item class so that it looks like a person.
Waiting Line You'll set up this object so that customers (flow items) are added to
(Queue) the WaitingCustomers list as soon as they enter the waiting line.
You'll also change the queue so that the customers form a line,
rather than getting stacked up inside the queue.
Service Desk This object represents the time it takes an employee to help a
(Processor) customer. For that reason, you'll set up this object so that it pulls the
first customer from the WaitingCustomers list when it is ready to help
another customer.
12
You'll also set the amount of time it takes an employee to help a
customer. You'll use the log normal 2 statistical distribution so that it
will take approximately 92 seconds to help a customer.
Unhappy Sinks remove flow items from the model. You'll set this sink up so
Customers that it will search the WaitingCustomers list for any customers that
(Sink) have been waiting longer than 200 seconds. It will pull any
customers who meet this criteria and remove them from the model,
representing the customer getting frustrated and leaving.
Happy You'll use the default settings for this object, so you won't make any
Customers changes to it.
(Sink)
3. Check the Arrival at time 0 box so that a customer arrives right when the model begins
running.
13
What Does this Distribution Mean?
Notice that customers will most frequently arrive at a rate of 50 seconds or less in this
distribution, but some might take slightly longer or even much longer to arrive.
8. In the Flow tab, click the arrow next to the Send to Port box to open a menu. Point
to Use List, then select Push to Item List. A box will appear to select the appropriate
item list. Confirm that the WaitingCustomers list has been selected.
12. Click the arrow next to the Process Time box to open a menu. Point to Statistical
Distribution, then select Log Normal 2 to open the distribution chooser.
14
o Location: 90
o Scale: 3.1
o Shape: 0.5
15. Click the arrow next to the Strategy box to open a menu. Point to Use List, then
select Pull from Item List.
16. Confirm that the WaitingCustomers list has been selected. Next to the Query box, click
the Add button to open a menu. Point to ORDER BY and select WaitTime.
17. Edit the query to change the ASC (ascending) to DESC(descending) since you want to
pull the customer that has been waiting the longest.
15
20. In the Flow tab in the Input group, check the Pull checkbox.
21. Click the arrow next to the Strategy box to open a menu. Point to Use List, then
select Pull from Item List.
22. Confirm that the WaitingCustomers list has been selected. Next to the Query box, click
the Add button to open a menu. Point to WHERE and select WaitTime.
Now that you're done editing the 3D object properties, consider saving your model.
To run the model, press the Reset button on the simulation control bar, which is below the
main toolbar. (Pressing Reset clears the simulation model and returns it to its starting
values.) Press Play to start the simulation and Stop to pause it.
When you first run the model a customer will immediately appear in the service desk.
Gradually, more customers will appear and form a line in the Waiting Line queue:
16
If your simulation model isn't behaving in a similar manner or if you are getting error
messages, double-check that you have followed all the previous steps correctly.
Also, right now the 3D visuals probably look a little strange and unnatural. Be aware that in
the early model building phase, you're more concerned about building out the basic model
and making sure it works correctly than in making it look realistic. In a future tutorial task,
you'll learn how to improve the visuals of your 3D model to make it look more natural.
As you work on the next step in the tutorial, it might be helpful to run the simulation model
at a faster speed than the default speed. It might also be helpful to run the simulation model
for a full day to get representative data from the model. Since a typical day in the customer
service center lasts 12 hours, you'll set the simulation to run for 43,200 seconds (equivalent
to 12 hours).
1. Click the arrow next to the Run Time box on the simulation control bar to open a menu.
17
3. Click the arrow next to the Run Speed box on the simulation control bar.
Try running the model a second time to see how this affects the simulation run.
Con cl u si o n
In the next tutorial task, you'll learn how to use various tools in FlexSim to get data from
your simulation model. Continue to Tutorial Task 1.2 - Get Data from the 3D Model.
18
TA S K 1 . 2 - G E T D ATA F R O M T H E 3 D
MODEL
Task Overview
1. Create a Dashboard
2. Pin a Statistic from Quick Properties
3. Add a Chart from the Library
4. Create a Custom Statistics Collector
5. Create a State Chart
6. Analyze the Data
Conclusion
T ask O vervi ew
In this tutorial task, you'll learn how to get data from your model using various simulation
tools such as dashboards, charts, and statistics collectors.
Since the purpose of building this simulation model is to make the customer service center
more efficient and to increase customer satisfaction, you'll gather data with the purpose of
answering the following questions:
How long does the waiting line get at various points during the simulation?
What is the average amount of time that customers spend waiting in line?
What percentage of the time is the service desk busy helping customers (as opposed to
being idle)?
You'll learn how to create charts that will help you better answer these questions. When
you're finished, you'll create a dashboard that has charts similar to the ones in the following
image:
19
20
ST EP 1 Creat e a Dash b o ard
In this step, you'll add a dashboard to your simulation model. A dashboard is a blank space
that you can fill up with charts that will display data about your simulation model as it runs,
updating in real time. You'll create the actual charts in the next step.
3. Lastly, you'll resize the dashboard so it is a little bigger. Mouse over the left edge of the
dashboard until the mouse pointer changes to a set of arrows.
4. Click the edge of the window or pane and drag it until the dashboard pane is about a third
larger than the default size.
You can also pin statistics from these objects to the dashboard to help with data collection.
Since you're interested in gathering data about the customer waiting times, you'll pin some
content statistics for the Waiting Line queue to the dashboard in this step.
21
When you pin a statistic to the dashboard, it automatically creates something called
a statistics collector to track this data. Statistics collectors work behind the scenes to gather
specific data from the objects in your model. During a simulation run, each statistics
collector listens to events on the 3D objects in the model and collects data about those
events in a data table. You can either view the data table directly or visualize the data using
a chart in the dashboard. (You can also export the table if you would prefer to analyze or
visualize the data using a third-party software program such as Excel or Tableau.) See the
chapter about Getting Data from Your Simulation Model for more information.
You'll use this statistic to create a timeplot chart that will show the content of the waiting
line as it increases or decreases over time. To create this chart:
1. In the 3D model, click the Waiting Line queue to select it. In Quick Properties, click
the Expand button next to the Statistics group to open the object's statistics.
3. Confirm that the Content vs Time chart now appears in the dashboard. If the chart is not
already selected, click this chart to select it. Mouse over the right edge of the chart until
the mouse point changes to a set of arrows. Drag the edge of the chart to make it bigger.
22
4. Open the Toolbox in the left pane. Under the Statistics Collectors group, confirm that
there is a new WaitingLineContentvsTime statistics collector.
You could also right-click this statistics collector and select View Tableand view the raw
data during a simulation run.
Pinning statistics to a dashboard can be a good way to explore and learn about how to
create custom statistics collectors, using these auto-generated statistics collectors as a
guide or a template. See Using the Statistics Collector for more information.
If you were to run your simulation model at this point, your chart would look similar to this
over time:
24
In this step, you'll add charts that will track the staytime of customers in the waiting line.
These statistics will give you data about the average and maximum wait times that
customers are experiencing.
4. In the name box at the top of the properties, change the chart's display name to Wait
Times.
6. In the left pane, click the Library tab to switch to the Library. (Make sure the dashboard
is still the active window.)
7. Under the Charts group, drag a Bar Chart to the dashboard. Its properties window will
open automatically.
8. In the name box at the top of the properties, change the chart's display name to Average
Waiting Time.
25
12. In the Settings tab, clear the Show Legend and Show Percentages checkboxes.
13. Press the OK button to save the changes and close the properties.
14. Feel free to resize or re-position the charts in the dashboard as needed.
If you were to run your simulation model at this point, your charts would look similar to
this over time:
This is also the first tutorial in which you will use a useful tool called the Sampler button
. When you click this button, your mouse will change to a sampler icon to indicate that
you're in sampling mode. In sampling mode you can sample objects in your simulation
model quickly and easily as needed. In this step, you'll sample one of the sinks to add it to
your custom statistics collector.
5. In the name box at the top of the properties, change the statistics collector's name
to CustomersThroughput.
27
8. Press the OK button to save the changes and return to the chart properties.
11. In the Library under Charts, drag another Bar Chart into the dashboard. Its properties
will automatically pop up.
12. In the name box at the top of the properties, change the chart's display name to Happy vs.
Unhappy Customers.
28
16. In the Settings tab, clear the Show Legend and Show Percentages checkboxes.
17. Press the OK button to save the changes and close the window.
If you were to run your simulation model at this point, your charts would look similar to
this over time:
29
In this step, you'll add one last chart to your dashboard: a pie chart that shows how well the
service desk is being utilized. To create this chart:
2. In Quick Properties next to the State box, click the Pinbutton to open a menu. Point
to Pin to Customer Service Metrics, then select Pie Chart. Notice that there is now
both a new chart in the dashboard and a new Statistics Collector
named ServiceDeskPieChart in the Toolbox.
4. In the name box at the top of the properties, change the chart's display name to Service
Desk Utilization.
If you were to run your simulation model at this point, your chart would look similar to this
over time:
30
ST EP 6 An al yze th e Data
In this step, you'll run your simulation model and view your charts. Using the information
gathered from these charts, you'll learn how to identify problem areas in your business
system.
If you haven't already, you should change the speed at which your simulation model runs to
1000 so that you can get more comprehensive data faster. You should also set the
simulation model to stop running after 12 hours (43,200 seconds). See Step 6 in the
previous tutorial task for specific directions.
Press the Reset button on the simulation bar to reset the model. Then press the Run button.
31
32
As the simulation runs, the charts will update in real time. When the chart is finished,
analyze them to see what they the reveal about the potential problems in the customer
service center.
For example, notice that, while there are more happy customers than unhappy customers
overall, there is still an unacceptable number of customers who left because of overly long
waiting times:
Also notice that the service desk was utilized almost constantly. It is good that the
employees at the service desk are always working hard and are constantly helping
customers. But the lack of any down time probably indicates that the service desk is being
over-utilized.
Based on these results, it might be good to experiment with adding more service desks to
see how many desks will help increase the number of happy customers without causing too
much idle time. You'll make this change by the end of the last task in this tutorial.
33
Con cl u si o n
In the next tutorial task, you'll build this same simulation model using the Process Flow
tool, which provides a different approach to modeling. Continue to Tutorial Task 1.3 -
Build a Process Flow Model.
34
TA S K 1 . 3 - B U I L D A P R O C E S S
FLOW MODEL
Task Overview
1.Adding and Connecting Process Flow Activities
2.Rename and Resize Activities
3.Edit Activity Properties
4.Run the Simulation
5.Create Process Flow Charts
6.Analyze the Data
Conclusion
T ask O vervi ew
In this tutorial task, you'll build an identical simulation model to the 3D model you just
built, but this time you'll use the Process Flow tool to do it. The Process Flow tool is more
abstract and theoretical than FlexSim's 3D modeling tools, which might have some appeal
to some users. The other advantage of using the Process Flow tool is that you can create
custom model logic much more easily in this tool. By experimenting with both methods of
simulation modeling, you'll learn which method is more appropriate for your specific
simulation projects.
In this tutorial task, you'll learn some of the basics about navigating inside of FlexSim's
Process Flow tool as you build a process flow model. The most important elements of the
Process Flow tool are labeled in the following image:
35
ST EP 1 Ad d in g and Co nn ecti n g Pro cess F lo w
Acti vi ti es
In this first step, you'll create a process flow. The first thing you'll need to do is choose the
type of process flow you'll make. For this tutorial, you'll make a General Process Flow
because this type of process flow is ideal for creating theoretical simulation models that can
run independently of 3D models.
Then, you'll begin adding and connecting some activities to your process flow. An activity
is like a chunk of logic or a logical operation in a simulation model. There are a number of
different ways you can add and connect activities. In this step, you'll try out all of these
methods.
For now, you'll add the activities to your process flow without an explanation of what each
activity will do. You'll learn more about what each activity does in step 3 of the tutorial.
When you're finished with this step, your process flow should look approximately like the
following image:
36
To add these activities:
1. Make sure you are using the same simulation model that you created in the previous
tutorial task.
37
5. Now you'll try the second method for adding and connecting an activity using a
connection coming out from the stacked block. Point your mouse on the bottom edge of
the block. The mouse icon will change to a chain link. Click the edge of the block
and, while holding down the mouse, drag it a little bit toward the bottom of the screen.
Notice that there is a connector coming from the edge of the block to your mouse pointer.
When you release the mouse, the Quick Library will appear. Under the Basic group,
6. Now you'll try the last method for adding and connecting a new activity by adding an
activity directly to the end of a stacked block. Point your mouse on the bottom edge of
the Delay activity. The mouse icon will change to a chain link. Double-click this
edge to open the Quick Library again.
38
8. At this point, you've tried using all the different methods for adding activities. Using your
preferred method, add and connect a Sink activity after the Release Resource activity.
9. Some activities can have more than one outgoing connector, such as the Acquire
Resource activity. Create a second connector coming out from the Acquire activity and
connect it to a Sink activity, as shown in the following image.
10. From the Library, under Shared Assets, drag a Resourceactivity into the process
flow. It shouldn't be connected to any other activities.
Check to make sure that your process flow layout looks similar to the image at the
beginning of this step.
Be aware that changing an activity's name will have no effect on the way that activity
behaves, but renaming activities will make your process flow a little more intuitive and
39
understandable. This step will also explain how to resize activities, since some of the
activities will be too small to display the new names using a readable font size.
When you finish this step, your process flow should look approximately like the following
image:
3. Now you'll try the second method of changing an activity name. Double-click the
second Sink activity (the one connected to the Release activity) to highlight its name.
Type Sink: Happy Customers as the new name and hit the Enter key.
4. At this point, you've tried using the two different methods for renaming activities. Using
your preferred method, rename the following activities as listed in the following table:
40
Source Source: Customer Arrival
5. Notice that the names of some of the activities now use a small font because they're very
long. Now you'll resize the activity block to make the full name visible. Click the first
activity block to select it.
6. When the activity block is selected, the entire border of the activity block turns yellow
and the black sizer boxes appear. Click the middle sizer box on the right edge and drag it
a little to the right until the full name matches the same font size as the other activities.
41
7. Repeat the previous step for the second activity block until the font is at a comfortable
size for you.
Check to make sure that your process flow layout looks similar to the image at the
beginning of this step.
Activity Explanation
Resource: You might have noticed that the Resource activity is a different color
Service Desk than the other activities. That's because it is a shared asset. Shared
assets don't interact with tokens the way other activities do. They can
be used to build complex logic into process flows by controlling
access to finite resources.
42
The customer service center will begin with only one employee,
which is represented by the Resource shared asset in this model. In
one sense, the customer service representative is a finite resource.
When that representative is busy helping a customer, he or she can't
help other customers until the current customer's request has been
completed.
Source: Most process flows begin with a source activity that will create the
Customer tokens that will move through the other activities. In this model, the
Arrival tokens will represent customers coming to the customer service
center. This process flow uses an Inter-Arrival Source to represent
the customers, who will arrive at random intervals.
In this step, you'll change the arrival rate for customers. Just as you
did in the 3D model, you'll set the arrival rate so that a customer
arrives approximately every minute. You'll use the exponential
distribution to randomly calculate the arrival rate with an average of
60 seconds.
Acquire: Get This activity will represent a customer standing in line waiting to
Service receive service from a customer service representative at the service
desk. If the representative is busy, the customer will wait in line until
the representative is free.
Sink: This activity will remove the token (the customer) from the model and
43
Unhappy track the number of customers that exited the process flow through
Customers this particular sink. In other words, it will track the number of
customers that got frustrated and left.
Delay: This activity will represent the time it takes a representative to help a
Service Time customer. You'll change the delay time to use a random statistical
distribution that will take approximately 92 seconds to help a
customer.
Release: End This activity will release the customer service representative to help
Service another customer.
Sink: Happy This activity will remove the token (the customer) from the model and
Customers track the number of customers that exited the process flow through
this particular sink.
There are two different ways you can edit an activity's properties. In this step, you'll try out
both of these methods:
1. Click the icon on the Resource activity to open its properties directly in the process
flow:
44
2. You'll use the default properties for now. Confirm that the Count property is set
to 1.00, meaning that there is only one resource available for now.
3. Now you'll edit some activity properties using the Quick Properties pane. Click
the Source: Customer Arrival activity to select it. Notice that Quick Properties (in the
far right pane) displays all the properties for all the activities in this stacked block.
45
6. Next, you'll connect the Acquire Resource: Get Service activity to the Resource:
Service Desk shared asset. Notice there is a red Exclamation icon to the right of
the Acquire Resource: Get Service activity. This means that this activity is not
connected to a resource, which is required. Click the Exclamation icon. The mouse will
turn into a sampler to indicate you are in sampling mode.
7. Click the Resource: Service Desk shared asset to link them. A blue line will appear to
show they are linked.
46
8. In the properties for the Acquire Resource activity, check the Use Max Wait
Timer checkbox to turn on the maximum wait time. A few additional settings will appear
underneath the checkbox.
47
Check Your Connection Numbers
In order for this activity's logic to work correctly, the outgoing connectors need to be
correct. With the Release Token Activity selected, the connector to the Delay should have
a 1 next to it and the connector to the Sink should have a 2 next to it.
If your connection numbers are reversed, you could delete them and re-connect the
activities, making sure to connect the Delay activity first. Alternatively, you could click
the connection and change its rank number in Quick Properties. See Changing the Rank
Number or Name of Outgoing Connectors for information about editing a connector's
rank number.
11. In the properties for the Delay: Service Time activity. Click the Edit Properties
button next to the Delay Time box to open the Distribution Chooser.
o Location - 90
o Scale - 3.1
o Shape - 0.5
48
Now that you're done editing the process flow properties, consider saving your model.
ST EP 4 Ru n th e Si mu l atio n
Running a process flow simulation is just the same as running a simulation for a standard
3D model. Once the simulation starts, tokens will move through the process flow activities.
As a token enters each activity, it will apply that activity's logic. To run the simulation
model:
1. On the simulation control bar, click the arrow next to the Run Speed to open the
options. In the Custom box, change the time to 4.00.
2. On the simulation control bar, press the Reset button to clear any data from the process
flow.
49
As you watch the simulation, you should see the following:
There should only be one token at a time in the Delay: Service Time activity (representing
a customer being helped)
There should be multiple tokens waiting in Acquire: Get Service activity (representing
customers waiting in line)
You'll only ever see tokens inside the Acquire: Get Service activity and the Delay:
Service Time activity. All of the other activities perform their logic in 0 time with no
created events so they won't show tokens moving through them. If you want to see a token
move through each activity you can use the Step button on the simulation control bar to
step a token through each of its activities.
You'll notice there is a green and red circle that will appear on the Resource: Service Desk
resource as you run. The green icon shows how many tokens have acquired a resource. In
this case there is only 1 resource available so this number will never be any higher than 1.
The red icon is the number of tokens that are attempting to acquire a resource but cannot
because none are available.
The process for pinning statistics from a process flow is nearly identical to the one for 3D
objects. When you pin a statistic to the dashboard, it will automatically create a statistics
collector. In this step, you'll edit the statistics collector so that it listens to both the Unhappy
Customers and Happy Customers sinks.
You'll also pin the staytime for the Acquire: Get Service activity, which is analogous to the
customer waiting line in the 3D model. To pin these statistics:
50
3. You'll want to track how many tokens enter this activity. So, next to the Input box, click
the Pin button to open a menu. Point to Pin to Customer Service Metrics, then
select Input vs Time. The chart will appear on the dashboard.
5. In the Name box at the top, delete the current chart name and type Customers (Process
Flow) in its place.
7. In the name box at the top of the properties, shorten the statistics collector's name
to CustomersInputVsTime.
8. In the Event Listening tab, select the Sink - Input event in the event list to select it. In
the Event Details, change the Nameof the event to Unhappy Sink - Input.
51
10. If the process flow isn't visible, point the sampler over the ProcessFlow tab.
11. In the process flow, click the Sink: Happy Customers to open a menu. Select On
Input Change.
12. With this newly created event selected in the event list, change the Name of the event
to Happy Sink - Input.
14. In the event list, click the Unhappy Sink - Input event to select it. In the Event Details
in the Parameters table, in the New Value row under the Event Data Label
Name column, delete the current text and type Input.
15. Press the OK button to save the changes and close the window. Close all the other open
windows to save their changes too.
52
18. Next to the Staytime box, click the Pin button to open a menu. Point to Pin to
Customer Service Metrics, then select Staytime Vs Time. The chart will appear on
the dashboard.
19. You're actually only interested in the statistics collector that was automatically generated
for this statistic, so click the new chart and delete it. You can close the statistics window
as well.
20. With the dashboard open and active, notice that the Library changes to show different
chart options. Drag a Histogramchart into the dashboard. It will automatically open
the Chart Properties.
21. In the Name box at the top, delete the current chart name and type Wait Times (Process
Flow) instead.
24. Click the OK button to save the changes and close the window.
Reset and run the model. When you're finished, your results should look similar to the
following image:
53
Similar to the results from the 3D model, you'll notice that there are only slightly more
happy customers than unhappy customers, which isn't a good sign. Also notice that the
average wait times are very close to the maximum wait time of 200 seconds. Clearly, this is
a business process that could be improved.
Con cl u si o n
After completing this tutorial, you've hopefully learned the basics of building a model in
the Process Flow tool. In the next tutorial task, you'll learn how to improve the visuals of
your 3D model and you'll learn how to use a process flow to create custom logic for a 3D
model. You'll also experiment with adding an additional service desk to see if that will
solve the business system's problem. Continue to Tutorial Task 1.4 - Link the Models.
54
TA S K 1 . 4 - L I N K T H E M O D E L S
Task Overview
1.Remove the Flow Logic in the 3D Model
2.Add New Objects and Change the 3D Visuals
3.Add 3D Objects to Groups
4.Reorganize the Process Flow
5.Add Additional Process Flow Activities
6.Connect the Activities
7.Edit the Customer Arrival Logic
8.Edit the Unhappy Customer Logic
9.Edit the Customer Service Logic
10.
Run the Model and Analyze the Results
Conclusion
T ask O vervi ew
The real power of using FlexSim comes from combining the strengths of the Process Flow
tool with the 3D visuals. In this tutorial task, you'll learn how to link a process flow to the
3D model so that the process flow can control the overall logic. You'll also add an
additional service desk to see how it affects your business system's overall statistics. When
you're finished, your simulation model will look similar to the following image:
And your process flow will control the overall logic of the model:
55
Using Labels to Connect to the 3D Model
In this tutorial, you'll use labels extensively to link tokens in a process flow to objects in the
3D model. Process flows can control the logic of the 3D model using labels that contain a
reference to a 3D object in the model. As the token moves through the activities in the
process flow, the activity's logic can be applied to the object in the 3D model using the
reference in the label. Consider reading Key Concepts About Labels for a deeper
understanding of how to work with labels in a process flow.
56
In this model, you'll use labels to link tokens to flow items in the 3D model. You'll create a
label named customer to link tokens in a process flow to the customers in the 3D model.
You'll also create labels to keep track of the resources in the model: the two service desks
and the two desk workers.
ST EP 1 Remo ve th e F lo w Lo gi c i n th e 3D Mo d el
Before you can link the process flow model to the 3D model, you'll need to remove all the
old logic that controls the flow of customers in the 3D model. You'll delete the Customers
Arrive source and remove the port connections. Then, you'll remove the list logic from the
Waiting Line queue, the Service Desk, and the Unhappy Customers sink.
1. Click the Customers Arrive source and press the Delete key to delete it.
3. When you are in disconnection mode, your mouse pointer will change to a plus sign with broken
chain link symbol next to it:
4. Once you are in disconnection mode, you can remove a connection between two objects. Click
the Service Deskprocessor. (You will notice as you move your mouse that a yellow line will
appear between the object you clicked and your cursor.)
8. In the Flow tab, click the arrow next to the Send to Port box to open a menu. Select First
Available.
12. Click the OK button to save the changes and close the window.
57
13. Repeat the previous steps to remove the pull logic from the Unhappy Customers sink as well.
After you've added these objects, you'll then change the visual properties of some of the
objects to make them look more realistic or functional. You'll change the color of the back
room area so that it is more visible, you'll make the service desks look more like desks, and
you'll change the visual appearance of the workers so that they look different from the
customers. When you're finished, your 3D model should look similar to the following
image:
o A Shape (under the Visual group)
o A Plane (under the Visual group)
o A Processor (under the Fixed Resources group)
o 2 Operators under the Task Executers group)
Picking an Operator Shape.
58
If you just click and drag an operator from the library window, it will add the default
operator shape and type, or the last selected operator type. If you click on the Operator
selection in the Library first, it brings up a selection menu with which you can select your
operator's shape. This includes Male, Female, Custom, and others. For this tutorial use
either Male or Female operators.
Shape Entrance
59
Plane Back Room
4. In Quick Properties, click the arrow next to the color box to open the color selector. Select the
lightest yellow color.
5. Change the X-size to 3.00.
60
6. Double-click Service Desk 1 to open its properties window.
8. Click the arrow next to the Color box to open the color selector. Select the second lightest gray
color.
o X-Size: 1.30
o Y-Size: 4.00
o Z-Size: 1.00
10. Click the OK button to save the changes and close the window.
11. Repeat the previous steps to change the visuals for Service Desk 2 as well.
61
12. If needed, re-arrange the 3D objects so they look more like the image of the model at the
beginning of this step.
1. Click the Toolbox tab in the left pane to open the Toolbox.
3. In the name box at the top of the properties window, change the name of this group
to ServiceDesks.
7. Close the window by clicking the X in the top right corner. Confirm that the
new ServiceDesks group now appears in the Toolbox under Groups.
63
1. In the process flow, delete the two connectors between the stacked blocks of activities. Be
aware that this might cause some error messages to appear.
o Resources
o Customer Arrives and Waits in Line
o Unhappy Customers Leave
o Customer Gets Service
o Worker Helps Customer
5. Move the stacked block with the Source: Customer Arrival to the Customer Arrives and
Waits in Line shape.
7. Click the stacked block with the Delay: Service Time activity to select it.
8. Click the Scissors button between the activities to separate all of them and make them
loose and unconnected.
64
For now, you'll merely add and connect these activities to the process flow. You'll edit the
properties to add the functionality in a later step.
2. Change the name of this new shared asset to Resource: Desk Worker.
65
3. In the Library under the Objects group, drag a Create Objectactivity and drop it in
the Customer Arrives and Waits in Lineshape between the Source: Customer
Arrival and Acquire: Get Service activity.
4. Continue to insert the following activities after the Create Object activity and before
the Acquire: Get Service activity in this stacked block:
66
Create Object Create Object: Customer
67
Move Object Move Customer to Unhappy Customers
8. In the Customer Gets Service shape, create a new stacked block with the following activities
(not including the Delay activity):
10. Add a Synchronize activity (under Coordination) after this stacked block, but leave it loose
and unconnected.
12. Add a second Synchronize activity (under Coordination) after this stacked block, but leave it
loose and unconnected.
68
13. Add the following activities before the Sink: Happy Customers to create a stacked block:
69
Second Synchronize Synchronize: Worker and Customer Finish
15. Resize both of the Synchronize activities so that they span across the Customer Gets
Service and Worker Helps Customershapes.
70
16. In the Worker Helps Customer shape, add the following activities, but do not connect them
into a stacked block:
71
Sink Sink: Task Sequence Complete
18. Move the Travel: Desk Worker to Service Desk activity so that it is parallel to the Travel:
Customer to Service Desk activity.
19. Move the Travel: Desk Worker to Back Room activity so that it is parallel to the Travel:
Customers to Happy Customersactivity.
Check to make sure your process flow looks similar to the image at the beginning of this
step.
1. Create a connector going out from the Acquire: Get Service Desk activity to the Acquire:
Get Desk Worker activity.
2. Create a second connector going out from the Acquire: Get Service Desk activity to
the Move Customer to Unhappy Customers activity.
73
Check Your Connection Numbers
In order for this activity's logic to work correctly, the outgoing connectors need to be
correct. With the Acquire: Get Service Desk activity selected, the connector to the
Acquire: Get Desk Worker activity should have a 1 next to it and the connector to the
Move Customer to Unhappy Customers activity should have a 2 next to it.
If your connection numbers are reversed, you could delete them and re-connect the
activities, making sure to connect the Delay activity first. Alternatively, you could click
the connection and change its rank number in Quick Properties. See Changing the Rank
Number or Name of Outgoing Connectors for information about editing a connector's
rank number.
4. Create a second connector going out from the Split: Coordinate Task Sequences activity to
the Travel: Desk Worker to Service Desk activity.
6. Create a connector going out from the Travel: Desk Worker to Service Desk activity to
the Synchronize: Desk Worker With Customer activity.
7. Create a connector going out from the Synchronize: Desk Worker With Customer to
the Release: Service Desk activity.
8. Create a second connector going out from the Synchronize: Desk Worker With
Customer to the Travel: Desk Worker to Back Room activity.
74
10. Create a connector going out from the Travel: Desk Worker to Back Room activity to
the Synchronize: Worker and Customer Finish activity.
11. Create a connector going out from the Synchronize: Worker and Customer Finish to
the Release: Desk Worker activity.
12. Create a second connector going out from the Synchronize: Worker and Customer
Finish to the Sink: Task Sequence Complete activity.
The following is an overview of how the activities in this process flow will function:
Activity Explanation
Resource: Since this shared asset represents the customer service desks in the
Service Desk business system, you'll link it to the Service Desk group you created
in a previous step. You'll recall that both of the Service Desk
processor objects from the 3D model are members of this group.
Resource: In a similar vein, you'll link this shared asset to the Desk Workers
75
Desk Worker group.
Source: You won't make any changes to this activity. It will still create tokens
Customer to represent customers. It will simulate the random arrival of
Arrival customers using the exponentialstatistical distribution.
Create When a token enters this activity, it will create the visual
Object: representation of the customer. It will look identical to the person
Customer flow item that you created in the first tutorial task but it will function
more like a task executer. You'll tell this activity to create the flow
item inside the Entrance shape.
Travel: This activity will cause the customer to walk from the entrance to the
Customer to waiting line.
Waiting Line
Move Since the travel activity only moves the customer to the waiting line,
Customer you need to move the customer into the waiting line in order for the
Into Line queue to apply its line logic to the customers.
Acquire: Get Much of this logic will stay the same. However, you'll change the
76
Service Desk default label that is assigned to the token that tracks the resource
that was pulled by the token. You'll rename this label serviceDesk for
clarity.
Recall from the previous tutorial task that the customer will wait in
line for an open service desk for a maximum of 200 seconds. If the
customer reaches 200 seconds, the token will be sent to the
Unhappy Customer activity sequence instead.
1. Click the Resource: Service Desk shared asset to select it. In Quick Properties, click the
arrow next to the Reference box to open a menu. Point to Group, then select ServiceDesks.
2. Repeat the previous step for the Resource: Desk Workersshared asset, this time linking it to
the DeskWorkers group.
3. Click the Create Object: Customer activity to select it. In Quick Properties, click the arrow
next to the Object box to open a menu. Point to Flowitems, then select Man.
4. Click the Create At button. Then click the Sampler button next to this box to enter sampling
mode.
77
What Does This Label Do?
The customer label will link the token in the process flow with the flow item that was
created in the 3D model (the customer). It will be used throughout the process flow to
reference the customer that is tied to this token.
7. Click the Travel: Customer to Waiting Line activity to select it. In Quick Properties, click the
arrow next to the Executer / Task Sequence box to open a menu. Point to Token Label,
then select customer.
9. In the 3D model, click the Waiting Line queue to open a menu. Select Waiting Line to sample
this object.
10. Click the Move Customer to Waiting Line activity to select it. In Quick Properties, click the
arrow next to the Object(s) box to open a menu. Point to Token Label, then
select customer.
12. In the 3D model, click the Waiting Line queue to open a menu. Select Waiting Line to sample
this object.
78
13. Click the Acquire: Get Service Desk activity to select it. In Quick Properties in the Assign
To Label box, delete the current text and type token.serviceDesk.
79
Activity Explanation
Move Customer to Since you moved the customer into the waiting line in the 3D
Unhappy Customers model, you'll need this activity to move them out of the
waiting line and into Unhappy Customers sink.
Travel: Customer to This activity sends the customer to the Unhappy Customers
Unhappy Customers sink.
Destroy Object: This activity removes the customer flow item from the
Unhappy Customer simulation model.
Leaves
Sink: Unhappy This activity removes the token that was linked to the
Customers customer from the process flow.
80
4. Click the Travel: Customer to Unhappy Customers activity to select it. In Quick Properties,
click the arrow next to the Executer / Task Sequence box to open a menu. Point to Token
Label, then select customer.
81
edit their properties as much as simply make sure the connectors between the activities do
what you need them to do. See Process Flow Coordination for more information.
The following is an overview of how the activities in this process flow will function:
Activity Explanation
Acquire: Get This activity will acquire one of the Desk Workers to help serve
Desk Worker the customer. You'll assign a label named deskWorker to link this
token with the worker that has been assigned to help the
customer linked to this token.
Move Customer Since you moved the customer into the waiting line in the
to Service Desk previous step, you'll need this activity to move them out of the
waiting line and back into the general model.
Split: Coordinate The Split activity will split the incoming token into two identical
Task Sequences tokens and release them through each outgoing connector. You'll
use these two tokens to synchronize the customer with the desk
worker. One token will control the customer and the other will
control the desk worker. You'll create the second token as a child
token with access to the original token's labels.
Travel: Desk This activity will send the acquired desk worker to the acquired
Worker to service desk.
Service Desk
82
Travel: This activity will send the customer to the acquired service desk.
Customer to
Service Desk
Delay: Service You won't make any changes to this activity. Recall that the delay
Time will simply represent the amount of time it takes the desk worker
to help the customer. It will use the lognormal 2 statistical
distribution to determine how long the customer will take.
Synchronize: This activity will ensure that the desk worker stays with the
Desk Worker customer for the full amount of the service time. The token
With Customer controlling the desk worker will wait until the token controlling the
customer reaches this activity.
Travel: Desk This activity moves the acquired desk worker to the back room
Worker to Back after the delay time has finished and it is time for the customer to
Room leave.
Release: Service This activity releases the acquired service desk so that another
Desk customer can acquire the desk.
Travel: This activity sends the customer to the Happy Customers sink.
Customer to
Happy
83
Customers
Synchronize: This activity ensures that the worker and the customer finish at
Worker and the same time. The token controlling the desk worker will wait
Customer Finish until the token controlling the customer reaches this activity.
Release: Desk This activity releases the acquired desk worker so that another
Worker customer can acquire the worker.
Destroy Object: This activity removes the customer flow item from the simulation
Happy Customer model.
Leaves
Sink: Happy This activity removes the token that was linked to the customer
Customers from the process flow.
1. In the Customer Gets Service shape, click the Acquire: Get Desk Worker to select it.
Click the Exclamation icon to enter sampling mode.
2. Click the Resource: Desk Worker shared asset to link them. A blue line will appear to show
they are linked.
84
What Does This Label Do?
The deskWorker label will store a reference to the specific desk worker that was acquired
through this activity.
4. Click the Move Customer to Service Desk activity to select it. In Quick Properties, click the
arrow next to the Object(s) box to open a menu. Point to Token Label, then
select customer.
7. Click the Split: Coordinate Task Sequences activity to select it. In Quick Properties, click
the Create As menu and select Child Tokens. Confirm that the Label Access on Parent
Onlybox is checked.
85
8. Click the Travel: Desk Worker to Service Desk activity in the Worker Helps
Customer shape to select it. In Quick Properties, click the arrow next to the Executer / Task
Sequence box to open a menu. Point to Token Label, then select deskWorker.
9. Click the arrow next to the Destination button to open a menu. Point to Token Label, then
select serviceDesk.
11. Click the arrow next to the Destination button to open a menu. Point to Token Label, then
select serviceDesk.
86
12. In the Worker Helps Customer shape, click the Travel: Desk Worker to Back
Room activity to select it. In Quick Properties, click the arrow next to the Executer / Task
Sequence box to open a menu. Point to Token Label, then select deskWorker.
14. In the 3D model, click the Back Room to open a menu. Select Back Room to sample this
object.
15. In the Customer Gets Service shape, click the Release: Service Desk activity to select it.
In Quick Properties, click the arrow next to the Resource(s) Assigned To box to open a
menu. Point to Token Label then select serviceDesk.
16. Click the Travel: Customer to Happy Customers activity to select it. In Quick Properties,
click the arrow next to the Executer / Task Sequence box to open a menu. Point to Token
Label, then select customer.
87
19. Click the Release: Desk Worker activity to select it. In Quick Properties, click the arrow next
to the Resource(s) Assigned To box to open a menu. Point to Token Label then
select deskWorker.
21. In Quick Properties, click the arrow next to the Object(s) box to open a menu. Point to Token
Label, then select customer.
In the 3D model, the customers should arrive, form a line and get help from the workers at
the desk:
88
The process flow should closely mirror what is happening in the 3D model because it
controls it:
89
Take a look at your process flow charts on your dashboard:
90
Notice that the addition of another service desk has almost completely solved the problem.
The ratio of happy to unhappy customers is much better and the average wait time is greatly
reduced.
Con cl u si o n
This concludes the FlexSim Basics tutorial. Hopefully you have a good sense of how easy it
is to create a simulation project for nearly any kind of business system using FlexSim. Be
aware that you can do even more to model people-based simulation models (like customer
service centers) using the People 3D objects and process flow activities. See the FlexSim
HC Tutorial for more information.
91