By Dennis Collin
I have been using and teaching Revit for over 20 years, but its out of the box toolsets for survey and infrastructure are still somewhat limited or even non-existent! In my previous occupations I had to produce setting out plans for buildings, roads and boundary markers and this is so easy in AutoCAD which lives in a cartesian background as do we all. Revit also does have access to coordinates but in not such an obvious way to the former and at a glance to do a task looks impossible, when compared to other products the same task is ‘child’s play’.
The question I was asked was how can I position a ‘survey marker’ post at certain coordinates within Revit? This process is quite easy once you appreciate Revit’s scripting environment, Dynamo. Dynamo can read a text or Excel file to obtain the coordinates, height and even identity data and apply that list to place families or geometry in the correct position. Dynamo has been inside Revit since 2015 and has been improved to perform additional tasks for all disciplines that the standard functionality may lack.
To place elements at coordinates, users need to create a component family as a ‘marker’. I used the generic model template, sub-categorised as Survey Marker. This family is then loaded into a project or project template ready to be placed by a script and coordinate list.
In the project itself I have assigned coordinate shared parameters to Generic Model categories so that the markers could be tagged or even scheduled if required. The parameters are just a simple number format that will accept coordinate data from an Excel Spreadsheet, or the points generated by Dynamo itself.
To place the markers, we can access the Dynamo script, locate the reference file listing the coordinates and elements will be placed at the correct coordinates. Revit by default works on its internal origin but with some additional tweaks we can relate the points placement to the shared coordinates system origin and the true north aspect if required.
In this instance the script uses Revit’s Internal Origin working with the default Project north (facing up the page).
The first step of the script just obtains a source Excel file, which will provide coordinate values and parameter names which could be used to create parameters if required.
This script splits the information into 2 parts, the coordinate data and header information. The splitting process is performed by the List.FirstItem node which will grab the headers within Excel and use them for parameter naming. The RestofItems node will collect the coordinate information. This in turn is split into X, Y and Z ordinates by the Getitematindex node.
The next section filters out invalid data (Isnull node) and creates a point and then the loaded survey marker at that point.
The last section obtains the coordinate data used to place the points and families and pushes the information to shared parameters that can be placed onto a schedule and tagged if required.
Comentarios (0 comentarios)