Dijkstra algorithm plug for wall

Dijkstra algorithm plug for wall

alex_gegedyush
Explorer Explorer
279 Views
1 Reply
Message 1 of 2

Dijkstra algorithm plug for wall

alex_gegedyush
Explorer
Explorer

hello guys, I'm having trouble with a plugin I have a problem: The plugin finds all walls as a list of start and end points to build a pipe along them. And to build it along them, you need to define a path along which the plugin will generate pipes. What I got: Collect all the walls in the list What I didn't get: Find the path/paths along which the pipes will be generated, there is an array of walls for example: (23, 65, 0)(38, -52, 0) (67, -11, 0)(83, 2, 0) (38, -52, 0)(28, 32, 0) (-30, 20, 0)(28, 32, 0) Etc. And you need the plugin to detect that to build a route between points (23, 65, 0) and (-30, 20, 0), you need to include walls in the new list: (23, 65, 0)(38, -52, 0) (38, -52, 0)(28, 32, 0) (-30, 20, 0)(28, 32, 0) I looked in the Internet that something similar is with the help of Dijkstra's algorithm, but all that I found is too difficult to implement in favour of code optimisation.

0 Likes
280 Views
1 Reply
Reply (1)
Message 2 of 2

jeremy_tammik
Alumni
Alumni

Well, the first step to take would be to construct a suitable graph from the walls. Dijkstra's algorithm finds the shortest path between nodes in a weighted graph.If you can reduce your graph to a 2D one, which would fit the example coordinates that you list, you are in luck. I am not aware of any ready-made samples for this, though. The Revit path of travel functionality is somewhat related, cf. the FindShortestPaths method:

  

  

The AvoidObstruction SDK sample might also be interesting to look at. 

    

Jeremy Tammik Developer Advocacy and Support + The Building Coder + Autodesk Developer Network + ADN Open
0 Likes