Pathfinder: Using Behaviors to Distribute Exit Goals Within Occupant Groups

Pathfinder: Using Behaviors to Distribute Exit Goals Within Occupant Groups


Hello, this is Bryan Klein with Thunderhead
Engineering. Today i’d like to give you a short tutorial on how to use a combination of behaviors,
and exit selection within those behaviors assigned to different occupant groups to specify distributions of exit goals across different occupant groups. So I’ve setup a very basic case. I
have a small room with two doors, a left and right door as you can see here. And then I have a larger room that
surrounds that room, that has four exit doors and
there’s top left, top right, bottom left and bottom right. These two rooms uh… I’ll have different
occupant groups in the two rooms, I’ll have an inner group and an
outer group. And then within each of these occupant groups, I will assign different percentages
of behaviors to the group so that they won’t all try to achieve the same ‘take any exit’ or ‘go to any exit’
behavior that is the default behavior in the
simulation. So, in this case um… I want to create four behaviors. The first behavior will be to take
either this exit, the top left, or the bottom right exit. The second behavior will be the bottom
left and the top right. The third behavior will be either one of these front two exits. And the fourth behavior is to take any
exit, that’s the default behavior. Let’s get started. The first behavior you
right click and add a behavior. i’m gonna call this uh… Upper Left dash Lower, Right. Okay so that’s our first assignment. And what i want with this one is, I’m not going to use any of these
behaviors for waypoints, rooms, elevators or wait. uh… and i won’t have any initial delay,
but i do wanna modify the exits. By default it’s to ‘any’. So, what I want to do is switch this to choose, and then I want the upper left and bottom right, and say okay. Alright so, these two
exits are now assigned. This one, we’ll do this again, add behavior, we’re going to call this uh… let’s do Upper Right, Lower Left and do the same thing here, choose and we want Bottom Left and Top Right. Then the next behavior is we’ll just call this the Left… left side, left exit. So we want a new behavior, left exits and it does help to name.. if you look
at it, I named all of the exits in here so it made it easy to find. if not it will just be like, exit one
exit two, exit three, exit four, it will number them. It’s difficult to know, you know, when you’re looking at the exit
selection window like here, um, what exit was what. You’d have to go look
at the model, and especially if you have very large models with you know, tens or in some cases hundreds of exits, it definitely saves time, um… to name them, so you can just see directly in
this list. But I want the top left, and the bottom
left here… that’s my two left exits. And then I have the ‘go to
any exit’ which is the default behavior. So, now that I have my behaviors created,
I’m gonna create my occupant groups now. So in the first room here I’ll just right-click, I’ll add occupants, and i’ll put twenty individuals in here.
And for the behavior here um… I’m gonna modify this, and so when you
modify the behavior selection in this add occupants window, a hundred percent is assigned to the go
to any exit. So for this inner group, I don’t want any
of them just to take any exit. I want to be a little bit more specific. And in this case I want to um… We’ll say seventy percent to take the left exits and uh… we’ll say that the, thirty percent of them um… know about this lower right exit. so in that, the upper left is there but they can also take this.
So there’s a thirty percent distribution across this group. and it tells me down here that i have a
hundred percent assigned, so this is nice just to double check. You could just
click distribute evenly, and here twenty five percent would be
assigned across these four behaviors. but I don’t want that for this case. So I’ll
say okay… and it tells me here I have seventy percent
left exits, and thirty percent upper left, lower right. I want to be randomly distributed inside
of this area and I want twenty, so say okay and there I have twenty. occupants and you’ll notice that they’re
selected here and the behavior is blank, this means that it basically has multiple assignments, that
there’s not a specific behavior assigned to the group. If I come in here and look, at the occupant group, and I go to a
particular individual, I can see that this one is assigned left exits so you can look down through just by
arrowing down and i’m looking at the behavior that set right here and I can see as I move down through which which exit behavior is assigned to the group. And so um… the next group will be in this area I’ll add occupants here. Now it keeps the same behavior, that
persists, and so you wanna modify that or else it will have the same exact behavior and uh… so I’ll click on this and in this case I’m gonna say a uh… ten percent can go to any exit we’ll say uh… twenty percent takes the left exits and then uh, we’ll do let’s do ten to the upper left, lower right, and the last uh… sixty to the upper right, lower left, so that’ll be this group so most of the people here uh… the majority should take this, either this exit or this exit uh… the rest will be distributed across. so I say okay, and I’m gonna put fifty people in this
area, so I have fifty individuals here. If I click on my occupants I can see
that my total count is seventy I have two groups. You can right click and
rename these so I’ll call this um… uh… Inner room and I’ll rename this one to outer room it’s a good, it’s good practice to name as many of your components possible, just makes referencing a lot easier. So I have four behaviors, I have two occupant groups and I have the geometry as I specified
before so we’ll save this model and call this ‘Exit Behaviors’ and uh… we’ll go ahead and run this. So it’s finished with the simulation. Let me just resize this window a little bit here, So we have our results, and we can move this around in a 3D view and we’ll take a look. we see there’s a little bit more crowding
here but uh… people change the queue even though his shortest path might have been to go this way
originally uh… after switching the inner queue to the left side, we’ll rewind this, after changing his idea here, so we’ll watch, watch this one individual we’ll look at their path so we see uh… It started to make a move to the left door, to the right door, back to the left door. Trying to find the fastest way out of this
room, finds it to the left, and then this lower
left option still meets one of the exit
criteria for that individual. uh… we’ll take a look at another
occupant, let’s see if I can uh… find one here let’s see, here we go… this individual starts out in the main room begins to make a left exit through this
door which seems to be shorter, makes it a brief, changes path, comes out
goes through this way take a look at some of these other
examples here These people are trying to find the fastest way out of their local room while still you know, achieving their goal, their exit goal. and we can correlate you know let’s stop this and I’ll take a look at this individual, let’s, let me reset the view… so I know that it’s this occupant here, that i’m interested in. so let’s take a look then It should be this occupant, I believe. so if we look at her options, it’s any of the left exits. So let’s go back here, and watch what she
does So she starts to the left, because it’s closer but
there are more people queued at this door so she waits here trying to get through, too much jamming,
switches to this more open door, and then takes one of the left exits. You can see that this pathing behavior is pretty dynamic, she’s
making decisions to try to get out of this inner room as quickly as possible uh… not necessarily through the
shortest path. The first movie shortest, sees a queue, greater than the queue to this door. Since the majority of people are going
to be heading to the left side and you can see that in the line density too, that
there’s more tracks on the left in the right takes the exit. So um… That’s, that’s basically the
behavior exit selection set up. If you have any questions, about setting up behaviors or how to assign exit selection to your
occupant groups uh… please send an email to… [email protected] and uh… will be happy to help you with
that. Thank you.

Leave a Reply

Your email address will not be published. Required fields are marked *