If you have to model an existing landscape in Revit, Dynamo can be an excellent tool to automate that process. Not only can you quickly create existing hardscape (that follows Topo), but you can also automatically place and size existing trees using survey data.
In fact, you can use this process to automatically place any element that exists in your AutoCAD survey as a block.
To start, you will need a csv or text file with your tree (or other survey) data. If you do not have this, you can create one by doing a Data Extraction from AutoCAD. Ideally, the survey data should have caliper and tree type attributes correctly assigned, but at the very least you will be able to get the XY coordinates of the tree.
The survey I used for this example did not have tree types, but it did have caliper values (in inches) and also differentiated between deciduous and evergreen trees. Here is the preview of the Data Extraction table, which I then exported to csv.
Once in Dynamo, there are two key parts to successfully placing trees. First, you need to map the type of tree to the Family Type. This is done with the Clockwork node List.MatchWithKeyValues. The second part is transforming the AutoCAD XY coordinates to the Revit coordinate system. This can be done with the Landform node Point.ShiftCoordinates.
Any additional attributes can be mapped using Element.SetParameterByName. In this example, I set the Planting heights using a very basic formula to convert the tree caliper to an overall tree height.
Here is the complete definition in Dynamo:
And the result is 170 trees that have been automatically placed and sized correctly:
And the final result, after creating the existing Topo and rehosting the trees:
2 thoughts on “Map Existing Trees with Survey Data”
Looks great. Some of the plug-ins available offer this functionality too, don’t they.
Can you re-host the trees en masse?
Which plug-ins offer this functionality? I’m not sure if I know of any off the top of my head.
Unfortunately you cannot re-host. For some reason re-hosting (or Pick New Host, as it is shown in the UI) is not available to the Revit API.