[Help Needed] - Creating Path of Travel with Dynamo - RVT 2020

Hi all,

I need some help on this topic, please.
I think it could be solved with Python or C# Custom node.

How to automatically create travel paths using dynamo?

The suggested workflow is to find the starting points, which could be the center points of multiple rooms or the location point for certain families.

And then the endpoint would be as well the center points of the destination room/s or the location point for families.

I was able to locate the points and connecting them, but couldn’t find the proper node to create the Path of Travel.

Looking to hearing back from you.

Thanks a lot!

Didn’t a node ship with 2.1 for this?

I didn’t find any !

Just confirmed. I’ll see what I can find, but likely some API calls via C# or Python will be necessary.

1 Like

Yep! It is in the API Additions. I plan on implementing some of the methods in custom nodes in the future. :sunglasses:

4 Likes

Thank you all for your comments.

Unfortunately, Dynamo 2.1 doesn’t come with a specific node for Path of Travel.

Can somebody help with providing a node to create a path/multiple paths with provided points?

Thanks!

Still no response …
I really need help with that …

I have created an adaptive component family that allows me to create a path of travel coded with an ID.
Dynamo increases the pathlength with half the original pathlength where the path crosses certain ‘areas’ (Dutch regulations). This can later be scheduled and tagged by ID parameter.
One omission is that in adaptive component families there is no connected level, everything seems ‘connected’ to the lowest level. But if needed one could always create a level parameter that gets set by the user.
It’s not yet ‘perfect’ but workable.

I would suggest you read the forum rules for how to get help, especially point 7.

At this very moment in time the only way to get the path of travel within dynamo is either to code it your self in python,create a c# zerotouch node package or wait patiently until someone has created it and released.

This may change in the future but do not forget that this feature has only just been added, therefore dynamo OOTB nodes and community created packages will be catching up with additional nodes to take advantage of additional api classes.

2 Likes

Hello Brendan,

Thank you so much for taking the time to response.
Your comment is well noted.
Except that I wasn’t trying to get somebody to have my work done.

I thought it might be easy to implement in a node to execute paths.
If somebody could have helped me with an idea about how to do it, or how to learn how to code it myself in python. That would have been a huge help.

Anyways, thank you so much and hope that we will see nice applications for this soon.

Have a nice day,
Regards.

Hi !
Thank you so much for your response!

Adaptive component seems to be a nice solution!
Could you share a screenshot for a sample of a path created with Adaptive Component?

As well, is the problem were you found the path is not compatible with the Dutch standard, is it only when creating the path of travel using dynamo? or even when you create it in Revit? and can you mention why, please?

Thanks again!

Hello @moy,

Top is ‘Path Of Travel’ in Revit 2020.
If i take walls in consideration i get an error about not being able to find a route (no ‘ignored’ openings now, i know).
And missing some Dutch rulebased exceptions and additions.
Like middle:
The ‘normal’ path of travel - rounding practically all barriers with 300mm of distance.
And bottom:
When the ‘normal’ path exceeds maximum length maybe an as straight as possible line from begin to end, only rounding structural parts, elevator shafts, etc. might be shorter.
With added rule that when the line passes through a ‘verblijfsgebied’ you have to multiply that part of the path with 1,5…

Check the 2020 Revit Software Development Kit (SDK) for the new API documentation. Once you have that figure out which method you want to call for this task. You’ll then need to import the methods you want to use into a Python node. Examples on how to do this for other methods can be found in Clockwork, Geniusloci, and a number of other packages and other resources for developing Python nodes can be found online. You’ll then need to decide how to handle your inputs, figure out what the method’s arguments are, convert any data types necessary, and decide how to handle lists. Lastly you’ll want to set your output.

I do know that at least one author of a popular package is working on this already (and I suspect at least two others doing the same). Considering that I didn’t even get the 2020 download until Monday, I’d say you’re already ahead of the game.

2 Likes

But this does nothing with missing rulesets and additions for (at least) the Dutch standards.
With my adaptive component families i can draw the ‘Path of Travel’ as i see fit and check/edit the length (with ‘native’ nodes in Dynamo 2.1).
And we can edit the path, the ‘Path of Travel’ path is not editable. If i made an error placing (for instance) the starting point i can only place a new one, not edit the starting point.
But this is more a Revit discussion than Dynamo :wink: so <@bronstijn out>

Actually you can add parameters to it and use Dynamo to check for overlapping geometries (or do them manually), just as your tool does. You can also draw one for every room, assign occupants from the room as a parameter, and check width of egress elements (is the door wide enough? get all intersecting paths of travel, pull the occupant load for each, sum that number and multiply by your width factor). They also schedule and can have filter overrides applied.

If you really wanted you could use points along the POT to place your adaptive component via Dynamo.

New methods need not rule out existing workflows, but ideally add speed and capability, which this tool certainly does.

If it was easy then it might be worth you having a read of the API documents as Jacob has said and make all of the choices indicated then implement it as a zero touch node(dll file) or python( a dyf file) to form a package for release.

I agree that I know of one package developer that is looking at it but some package developers do these things in there own time or do them when they can from other work commitments. It will take someone time for them to understand and implement it in the correct way, while also not breaking anything and correct error handling especially for it to only work in revit 2020.

Note: zero touch nodes are done via the c# language and is how/similar to the implementation of ootb nodes.

You could also see if this is a good temporary solution for you if you are not comfortable with c#/python to get the new api to work.

1 Like

Hopefully this will help some people

Recently I was making a script to automate pipe routing in 2D, due to various reasons the path of travel methodology didn’t work for me(maily because it gives angled lines) so I decided to mimic the path of travel.

After some reaserch I came across the Network X packages which has many options for graphs and utilised it, sadly its a c- python package and I had to go to the source code of the package and change it accordingly.

In a nut shell what my script does is get a surface divide it into uv grids and finds all shortest path between the two given points on the graph( I have managed to divide in such a way that the two points lie on the uv grids).

In your case you can divide the surface into uv grids with diagonals as angled lines are ok for fire exit dwgs.

Hope this helps…!