During my years of training Revit, many clients ask if there is a tool to place a Revit family at a world coordinate, perhaps issued by a contractor or a surveyor. In AutoCAD, due to everything being modelled from the World Coordinate System or WCS, this is an easy task. You simply type in the easting and northing. However, Revit’s coordinate system for placing families uses the internal origin which will not be the real-world coordinate. We also must consider the possible rotation of the site in relation to the project north.
A simple solution is to use Dynamo to transform the coordinate system and place a selected family at the coordinates. I have wanted to create a tutorial for some time now and I have finally got around to it! The most efficient method for placing the families is to use Dynamo Player, however, if a number of families are required from a list, then we can read a text file, comma separated file or Microsoft Excel.
Above I have included an image of the complete Dynamo Script but will step you through each of the groups. If you want to see a detailed, step by step guide then I have created a YouTube video here:
The first step is to get the project base point built in parameters which get the East/West, North/South and Angle to True North. Although there is a node that retrieves this information directly, the node will not update or refresh so this is a better method.
Next, we create to inputs for the Easting and Northing, these values are subtracted from the Project Base Point and a coordinate system is created.
We can now create another coordinate system at the internal origin of Revit and then rotate this system to take into account the project north rotation. The family instance is then placed at the coordinate system. The Dynamo script should ideally be executed within Dynamo player to allow for multiple coordinates and families to be placed simultaneously.
If several families are to be inserted at world coordinates then you can create a dynamo script that reads a series of coordinates that are stored in Microsoft Excel or a simple comma separated file.
Anyway, feel free to watch the YouTube video where I create and explain the script step by step!