A* in automation of modelling and clash avoidance in construction design
Abstract
SammendragKontekstByggbransjen er i dag de en av bransjene som scorer dårligst på digitaliseringsammenliknet med andre bransjer. Samtidig har mye skjedd på digitaliseringsfronteninnen bygningsdesign. Byggbransjen er på tur ut av enæra med 2D tegninger til fordel for BIM og etter hvert parametrisk modellering.Med framveksten nye dataprogrammer som tilrettelegger for videreutvikling har det aldri vært så enkelt som nå å utvikle nye verktøy for digitaldesign av bygninger. Derfor kan det være interessant å se om man ibyggbransjen kan lære av de bransjene som har kommet lenger i digitaliseringenog låne teknikker derfra.MålsettingMålsetningen med denne oppgaven er å utforske hvorvidt enkle problemerinnen konstruksjonsdesign kan reduseres til stifinnerproblemer og dermedbenytte stifinneralgoritmer til å automatisk finner en vei. En slik algoritmevil kunne oppdaterer seg hver gang noe endres og dermed automatisk unngåkollisjon. Dette vil da kunne spare tid og penger, og vil gli naturlig innmed parametrisk modellering.MetodeFor å teste dette i praksis ble det laget en plugin til det visuelle programmeringsgrensesnittetGrasshopper som er en del av CAD programmetRhinoceros 6. I denne pluginen inneholder skreddersydde grasshopperkomponenter.Disse komponentene gir brukeren mulighet til å inndeleeksisterende geometri i et rutenett og deretter kjøre A* stifinneralgoritmenfor å finne en vei mellom to valgte ruter. Brukeren har mulighet til å påvirkehvilke veier algoritmen velger ved å endre på ulike verdier i algoritmenskostfunksjon. Til slutt vises resultatet i form av et rør modellert langs rutamellom de to punktene.ResultatI ulike tester vises det hvordan algoritmen oppfører seg med ulike inputverdier.Det vises hvordan brukeren kan påvirke algoritmen til å haulike egenskaper ved å endre på inputverdiene. Det diskuteres om algoritmenoppfører seg ønskelig, i hvilke tilfeller den ikke gjør det og det gjøresogså en kjøretidstest.Konklusjon og videre arbeid.Konklusjonen er at algoritmen viser lovende resultater, men at mye arbeidgjenstår. Det er en rekke ting som må forbedres med nåværende algoritmefor å få den til å fungere mer optimalt. Blant dette er å minske antallsvinger algoritmen velger å gjøre samt redusere kjøretid. Det er også enrekke deler av algoritmen som kan være interessant å utforske videre somheuristikkfunksjonen, kostfunksjonen men også andre stifinneralgoritmer. SummaryContextToday one of the lowest scoring sectors in digitalization is the constructionsector. Still much has changed the last decade in the digitalization in structuraldesign. The construction industry is leaving the era of 2D drawings infavor of BIM and eventually parametric modeling. With new design softwarethat facilitates programming, it has never been easier to develop newtools for digital design of buildings. Therefore, it can be interesting to explorewhether the construction industry can learn from the industries thathave come further in digitization and borrow techniques from there.ObjectiveThe aim of this thesis is to explore whether simple design problems can bereduced to a path finding problem and thus use a path finding algorithmto solve the problem. Such an algorithm will be able to update itself everytime something changes and thus automatically avoid collision. This willthen save time and money, and will integrate smoothly with parametricmodeling.MethodTo test this in practice, a plugin was created for the Grasshopper visualprogramming interface which is part of the Rhinoceros 6 CAD program.This plugin contains custom grasshopper components. These componentsallow the user to divide the space around existing geometry into a gridand then run the A* path finding algorithm to find a path between twoselected points. The user har the ability to influence which path the algorithmchooses by changing different values in the algorithms cost function.Finally, the result is shown in the form of a pipe modelled along the pathbetween the two points.ResultThe algorithm was run on different cases and with different input values totest how the algorithm behaves. It is shown how the user can influence thealgorithm to have different properties by changing the input values. Thealgorithm showed promising results in some cases, while in other it didnot. A run time test was also done.Conclusion and further work.The algorithm shows promising results, but a lot of work remains. Thereare a number of things that need to be improved with the current algorithmto make it work more optimally. Among these is to reduce the number ofturns the algorithm chooses to do as well as reduce run time. There are alsoseveral elements of the algorithm that may be interesting to explore furthersuch as the heuristic function, the cost function but also other path findingalgorithms.