When annotating Planting Plans, it is a fairly common technique to use connector lines in order to show a grouping of plants that are all the same species. These connector lines are usually shown in straight lines or in arcs. Here is an example of straight lines:
Since Revit does not really have any landscape-driven tools, there is no tool that allows you to do this automatically. But this is a perfect application for Dynamo.
To start off, you will need a custom node from Archi-lab and the DetailLine.ByCurveAndView node (this is also the package name). For some reason, the Clockwork node DetailLine.FromCurve did not work for me, so I used this old (and deprecated) node instead.
Here is the initial definition.
And the result in Revit:
Since Dynamo does not specify the Line Style, Revit will choose the default Line Style (for me, it was Thin Lines). To change the Line Style, just add a few more nodes. To select the correct style, I drew a line with the correct Style, used GetParameter, and then applied the Style to the generated lines.
This is pretty good for straight connectors, but what about arcs? So I created a custom node to convert lines to arcs (it is available in today’s Landform update).
Here is the full definition.
And the result:
The node Arc.ByLine allows you to flip the arc, by setting the flip input to false:
Since the lines are created by simply connecting the points, the order in which the plantings are created will effect the connector lines. So this method for creating connectors works best when you are connecting plantings that have been placed intentionally and somewhat geometrically.
For example, here are two grids of trees that are essentially the same. They were placed slightly differently and it becomes apparent when generating the connectors.
As a result, it is almost entirely ineffective if you try to connect plants that have been randomly placed in a cluster.
To make a cluster work more effectively, you would need to find the shortest path connecting all of the elements. There is currently a Clockwork node (PointSequences.ShortestPath) which might be useful, but so far I haven’t been able to make it work. But if I do find a solution to this, I will be sure to post an update.