Copying all views from one level to another

With a lot of Revit projects I work on, on one level there’s quite a number of views for each level. Each view having several floor plans or ceiling plans, all with their own view templates and even after that they tend to get split ups in several views using scope boxes.

After one level has been done as such, the others tend to be the exact same, but just on a different level.

My question is wether there is a possibility to take all the views of one level, make a copy of them, and then shift them to another.

I’ve been using Dynamo for quite some time but handling views here is still new to me, so when I’ve searched around a bit it was not clear to me if what I’m seeing would be useful. I think I’d be helped a lot with a good start into views in Dynamo. If that helps me figure it out myself I will still share my results here.

As far as I know, you cannot change the level of a view.

You could however, create views (Dependent or independent) and assign them to scope boxes.

Can you create dependents and assign them to scope boxes via Dynamo?

yes, of course.

I have done this many times. I won’t share my code, but I can give you a step-by-step overview for creating individual dependents from the current view.

  1. Get Current Doc
  2. Get Active View
  3. Get all scope boxes
  4. Get Name of scope boxes (you can use this to re-name your views)
  5. Create Dependent from active view
  6. Names = Current view name + scope Box names
  7. Assign scope box to duplicated views
  8. Quench thirst

If you run into difficulties…let me know.


The only issue with that is you still will not be able to switch those views out to another level.

Try to re-approach how you intend to “copy” those views to other levels.

If your floorplate is the same vertically then your views can be drawn/taken from the same location on the level below and created again using the same viewport extents from below and simply applying to the new view on the level above.

The attached few nodes should set you off down the right path to do so:

Be aware of the differences between ‘views’ as independent entities not necessarily on a sheet and ‘viewports’ as a view reference/extent definition on a sheet.

Hope that helps

1 Like

This was the general idea, yes. But also to create these new views via Dynamo.

Ah so even the orginal set of views will be automatically created?

In this case your best bet is to create an excel schedule of views with all the relevant data for each (scope box, template etc) and import that data to create the views?

Once you have 1 level worth of views scheduled in excel you can copy it all and simply have a column called ‘level’ which would definite which level the views are created at.

There’s no need for that, just from one floor to another.

  1. Get all Views on Level 1.
  2. Get names, templates, and scope boxes of views.
  3. Get other levels in project.
  4. Replace “Level 1” in view name with remaining levels.
  5. Create new views with new name, level, template, and scope box.
1 Like


How do I go about this. I’m not that experienced with views in Dynamo.

Then I recommend going through the Dynamo Primer. Views are elements just like anything else. You’re mainly just getting and setting parameter values here.

That seems quite easy, I did not know that.

I’ve just been looking into it more.

I can get all the views of a certain level, I can find the level names and view templates, I can find the scope boxes.

However, I do not know how to create new views, I can duplicate them but because I don’t think I can change the associated level that doesn’t help me.

OOTB node called FloorPlanView.ByLevel.

Would be very straightforward to cycle a list of levels that is n long relative to how many views you need to make per level.

Then it’s a simple process of assigning the relevant scope boxes and view templates to your new views.

1 Like

I somehow missed that.
Now it’s just matter of splitting up floor plans and ceiling plans and I’ll be ready.

Check my previous message which outlines what should be a useful collection of nodes for you in this process.

I will!

Should be useful now.

I can create the correct views with the names that I like, but I’m not able yet to apply any view templates to them. I’ve tried one from GeniusLoci and one from SteamNodes but neither is working for me.

If it’s relevant: I’m in Revit 2017 and using Dynamo 1.3.4.

It would help if you’d post screenshots of what you tried in Dynamo so we can see what’s not working :slight_smile:

1 Like

The ApplyView Template Parameters method already exists in Revit 2017, so no reason for failure.