I know there are lots of topics covering similar questions, but I am not getting answers that I think are applicable to my question.
There is a free addon called BIM One Export/Import Excel that is perfect for what I want to do apart from the fact it doesn’t support Sheet Lists. I want to be able to make Excel the place to add my sheets as we have some special numbering system to suit a CDE.
I started by creating a Master Sheet List in Revit and exporting to Excel (1st image below). This works well. I then have another Excel workbook where I paste link that data and add a column to concatenate each element of my drawing number (2nd image), thus providing me with a full sheet number that I need in Revit. I cannot find a way in Revit to combine parameters in this way and overwrite the sheet number.
So I started by exporting the data from Revit and this worked well (3rd image). Just so I knew how the Excel would look. I then did a script to import the data back from the new Excel (4th image). So my list here matches exactly the list I get when I “schedule.getdata”.
So I am not sure on the last step here. I need to overwrite the data in the schedule with the revised data pulled from Excel. Do I need to get each parameter name (per column of the schedule) and SetParameter from the list ? Not sure how to accomplish this.
You need the Id’s of the Sheets in Excel, to do that use the Element.Id node and export it to Excel.
Now if you read the Excel file in Dynamo make a code block and type the following.
Revit.ElementSelectorById (case sensitive)followed by (Id,true)
What it will do is read the Excel data (your Id’s and select the corresponding element (Sheet) now you can get and set the parameters.
Hi. Appreciate the help, but 2 things to state…this is a sheet list, no sheets have been created yet. We ‘reserve’ sheets in the schedule ready for adding the actual sheets later on. Secondly, I need to be able to use the XLS to create new rows and populate them, then feed back to Revit.
I know I am demanding, sorry. Can this be done ?