Targeted import to specified objects

How do I target a particular object (aka instance) for importing data from an Excel spreadsheet.

Suppose I have a project with multiple rooms and one of the parameters is room name (e.g., Kitchen, Conference Room B). Further suppose I want to create a spreadsheet of room names. How would I use Dynamo to assign each room name to the appropriate room object, so that, for example, a kitchen is not named Conference Room B?

One approach is to assign a permanent unique identifier to a room when it is added to the Revit project and use that same ID in the spreadsheet. This ID could be something as simple, and unique, as a room number. Then create a Dynamo script (aka graph) to import the room name into the correct room object, per the room number. How would I implement this approach with a Dynamo script?

Let’s suppose the spreadsheet is:
… 101 … Kitchen
… 102 … Conference Room B

Of course, there may be other, more suitable, approaches.

The permanent unique identifier you’re speaking of already exists. Look into GUIDs and Element IDs. GUIDs are static from the moment of creation and cannot change. Element IDs can shift when creating new central models and enabling work sharing. There are nodes for selecting elements by either identifier in various packages (Archilab is one personal favorite).

Thanks Jacob Small. Could you post a script that implements your approach?


Not in this case - super busy with my own work for the foreseeable future and there are several examples of selecting elements by ID on the forum already.

Search for phrases like select by GUID and select by Element ID you’ll get something you can use pretty quick.