Key Schedule node doesn't overwrite (doesn't update)


Similar thing been discuses here: Excel to Revit Key Schedule Help
Problem was mentioned but unresolved.

I’m using Dynamo in Revit 2018.3.

I get following behaviour:
The Key Schedule node is only able to create new key schedule data rows.
If more key schedule data rows already exist, node reduces the number of key schedule data rows to the number of new data rows written in without changing key schedule data.
If more data rows are brought in, only aditional data rows are added (existing key schedule data rows stays unchanged).

The point is to keep updating/maintaining parameters & values outside Revit in Excel.
Imagine that there are a lot of elements already having Key Name values set, but key schedule related parameters - values needs to update for scheduling purposes of the elements.

I found solution. It is about superseding existing Key schedule and populating new empty one. Superseded Key Name value can’t be lost and needs to be transferred to new Key Name in process. It is about 8 steps and couple scripts to run. Reply if you’re interested in step by step explanation.

Late to the game, but I’m interested!

@danielp Would you be able to share your steps? I’m working on a similar exercise - I want to use excel to maintain a list of key values that can be loaded into projects. I need to overwrite existing key values and add new ones in Revit. These keys are being used for calculations in other schedules, so I don’t want to create a new key altogether, I’d like to work with the existing keys.

I got this far and and ended up with the existing key schedule being reduced to the size of the excel file, with no values overwritten.

Following up on this, at this point I’ve also tried deleting any existing keys in Revit to have Dynamo write new key information based on the Excel file. Now I’m getting a numbered list of blank keys. Am I missing something critical for the KeySchedule node? I’m in Revit 2020.2 & Dynamo 2.3. Thank you!

Sorry for the late response. Just to let you know, that I saw your interest in the solution, but that time I didn’t have spare hour to sit down and respond.
Now I’m on holiday, but I’ll try describe the way I did it from top of my head.
Problem is or was that with the dynamo I could only add key schedule entries - rows. Couldn’t edit it.
Therefore I used a temporary key schedule and parameter associated with it. This way I kept key value for the family instance and I have updated key entry - row values sonetime when transfered.
Example: KeyParameter01 has value KeyEntry01 and associated values with it in the columns. I’ve copyed it to TempKeyParameter01 and value KeyEntry01 and associated values with it, possibly with required amendments. Then I celard KeyParameter01 values on family instances and copied from TempKeyParameter01 back to KeyParameter01 and all it’s values. Clear TempKeyParameter01 not to cause confusion. Like I wrote, there were 8 steps in the process.
I hope this make sense. This is workaround not straight forward solution but it worked for me.
I’ll try to find spare hour and have a look next week sharing more.

@danielp, any chance you could share more and clarify this process a bit more?

@ruthparr, did you get this working and would you be willing to share how?

@JustinStirling We’ve been manually updating key schedules instead of creating the “one click key schedule update” I’d hoped for… I’d actually missed @danielp’s summary, though, so thanks for refreshing the thread. I don’t think I have been able to use the Key Schedule node properly yet - I can get it to create a set of new Keys, but the key properties don’t show any of the excel data.

I just went through a similar exercise. I ended up reading something about the key schedule node: it only works on fields with built-in parameters. If you add a custom project or shared parameter to a key schedule, the node won’t let you update it.

would it work if the parameter value of key schedule is emptied and rewritten with new or same values?

I was able to solve this with a Python script found here:

It will add new rows based on the count of the items in the list. Then you can use SetParameterByName to add your Key Name and other parameter data.

1 Like