Optimization of the position of fire escapes

Hallo community,
Does any one of you knows a workflow to finding ( optimizing) the best position for fire escapes (staircases) in this kind of Building structure (picture and link to file below) ( They need to be positioned inside or on the facade of the structute) . The fire escapes from ground floor to rooftop need to be 120m. apart and every 60 m. there needs to be one from 1st floor to the rooftop ?

I have no idea how to go on with the problem… but i gues some kind of workflows in the direction of:

  1. generative design
    2.Shortest path but I have no idea how to implement it.
  2. Anemone Growth within the mesh
  3. Kangaroo Circle packing or Geometry collisions
    can help.

The work and question is connected to my bachelor thesis but I think it is important question in real world projects as well. I will be really thankful for any response !

![Berthold-Entwerfen-Entsiegelnde-Architektur-2022s|690x322]

(upload://7jI4gnElRJQlqm6LmnxqOCnDUbz.jpeg)

Here I tried to somehow do it but it doesn’t get really close to the answer. ( yellow parts are not within the distance)

File download

1 Like

What you could do to start with is generate points across the entire structure in plan. Set these points to be 1m or so apart. You would probably need to do some sort of coding for the looping or use Hoopsnake/ Anemone, but I think the logic could be that if you have a point that is not yet covered by a staircase, then you will need another staircase (i.e. generate another random point). You could then minimise the number of staircases using Galapagos. And you would ensure that all points are covered by staircases.
There are probably more advanced algorithms though…

Also, the range of coverage for each staircase can be retrieved with a Catchment analysis (isochrone). A 30m radius does not ensure you can reach the staircase unless the entire building is completely wall-less. If it were to be a maze structure you’d have a much lower reach. Hope this gives you some ideas.

One way to generate catchment areas from shortest paths is with the SpiderWeb add-in in combination with Assign Paths from Human. In the definition below, the floor surface in your model is converted to a mesh which is then turned into a graph network with SpiderWeb. The nodes in the graph are colored by catchment based on a set of manually placed destination nodes. The gray lines show the shortest path of the most distant point in the each catchment and the white outlines are the convex hulls of the catchment points.
20220604_SpiderWeb Catchments.gh (29.4 KB)

Taking this a few steps further, you can use circle packing with Kangroo to spatially distribute points relatively evenly across the area, then use Lloyd’s Algorithm adapted for graph networks to optimize spacing within the graph network. The looping required for Lloyd’s can be done with Anemone. This will get you fairly evenly spaced destination nodes (stairs) within the graph network. Metrics can be extracted telling you maximum distance traveled within a catchment and the distance from one destination node to the next closest one. In the definition below, you still need to set the number of destination nodes to start with and see what maximum travel distances result, however, I can see this all being wrapped in a Galapagos optimization.

20220604_Kangaroo Lloyds SpiderWeb Catchments.gh (61.5 KB)

7 Likes

Thank you so much!!! Looks amazing! I still haven’t open the file, but just wanted to thank you! I also had all the plugins in my head and the rough logic how it may work, but putting it all together in the right logic would have been impossible for me! Thank you once again!