A little less than a year ago, I posted about how you can Make Hardscape Follow Topo with a very simple Dynamo definition. The main downside to this workflow is that it requires a corresponding Subregion with the same footprint as the Floor. Because it uses a Subregion to generate points, you also cannot control the amount of points that go into the Floor. But with a slightly more complicated definition, you can create the same result without a Subregion and even control how many points will modify the Floor.
So starting out, I created a definition (using Spring Nodes and Clockwork) that found the Floor boundary points and projected them onto the Toposurface.
This definition may work fine for smaller Floors that are on a relatively simple slope, but it does not incorporate any interior Topo points or Topo triangulation edges. So on more complex slopes, it is not particularly useful:
In order to incorporate those additional points, the definition gets a bit more complicated:
This definition produces essentially the same result as the older workflow that required a Subregion.
And this last definition places points at a specified interval along the Floor boundary.
The result does not follow the Topo perfectly, but it can be useful along curved edges and if you also want to modify the points manually.
I am considering creating a custom node or two from these more complex definitions, but I am still in the process of updating Landform to Dynamo 1.x. So in the meantime, here are both of these definitions (created in Dynamo 1.1.0):
Hi
I tried the nodes and had some issues with Follow Topo Interval
1. Whenever one side was smaller than the interval it would not run. I could resolve that by replacing Nulls (bv Replace Nulls from the Bakery package) between the Range and Multiplication Node.
2. Whenever my surface was below 0 I had the issue that Springs.Collector.Element.Sketch would always return 0 for the curve z-Coordinate. I could resolve that by recreating the points to project by x and y from Springs.Collector.Element.Sketch and feeding an abitrary negative value small enough that the points were below the surface…
Great graph though!
Commenting myself Springs.Collector.Element.Sketch returned z = 0 because the original floor was sketched on Level 0 and then later moved to a level below. Seems a bit of Revitism that the floor remembers the workplane it was originally sketched on…