Isolating views not on sheets and chaging name case


I am a very new user of Dynamo trying to demonstrate its capabilities to my office and how it might improve our workflow. One of the first things we decided to try was creating a script to change the view name of all views on sheets to uppercase. By reading some threads, we succeeded so we thought we would also try to have the script change any view name not on a sheet to lowercase, this was not so successful. The screenshot shows how we tried to use a boolean to sort the change in case, but I cannot figure out how to create a list where the output would yield any view not on a sheet as false. Maybe my mistake is trying to use the boolean to change the case in the first place. Or I may not be making any sense at all. Any thoughts? Thanks.

Hi @jviglianti,

Great to hear you are getting to grips with Dyamo at your workplace, I can guarantee that it will greatly enhance your workflows!

Here is a quick extract of a script I made a while back which had a simlar purpose which I tweaked some to suit your needs.

ChangeCaseOfViewsNotOnSheet.dyn (17.7 KB)

Mess around with it and tweak/improve where you can.


1 Like


Thanks Dan! And I appreciate the margin notes. I’ll take a closer look, but from initial inspection, this seems like just what I was trying to do. It appears I have a lot to learn, thanks for getting me on the right track.


No worries Justin. Glad to help out. Don’t forget to mark as resolved :wink:

1 Like

Hi there,

I am also really new to Dynamo and trying to do exactly what you managed to do: change the view name of all views on sheets to capitals. I have managed to make a script to change all view names in the project but unfortunately I always get the error message attached. This is due to all the different users 3d views names being in this format {3D -username}

I have tried to copy the script from @Justin_Viglianti but couldn’t quite understand what part to remove or change to filter by only views on sheets.

Thanks a lot for your help!


I’m a little confused what you are trying to do… The image you posted shows that you are getting all sheets, then all views on those sheets and then trying to rename the sheets with all the uppercase view names, I doubt this is what you want and will likely fail in any case for multiple reasons.

However, from what you’re asking, you want to change the names of all views that are on sheets to be uppercase. In this case you should plug the Sheet Views node Views port into the SetParameterByName Element port as these are the views you want to rename, not the sheets.

As for the error you are getting, this is as expected. The 3D views that have braces are default 3D views created by revit and are generally expected to be renamed if used in production. If you want to rename these to be capitalised, then you should remove the braces from the name when capitalising, but it is good practice to rename these before placing on a sheet in the first place. To rename without issue, try using string.replace nodes for both left and right braces. You should do this before you set the View Name parameter and before or after the uppercase conversion. If you don’t want to rename the default 3D views, then filter out the views with names that contain braces using string.contains “{” and the FilterByBooleanMask node.

I hope this clarifies some of the issues you are having! :blush:



Yes that clarifies a lot and taught me a good bit too :blush:

Thank you so much!


1 Like

No worries! And happy scripting! :blush: