2000 3dViews in a shot


The main Aim is create 2000 perspective, each one from a seat placed already inside a Hall, REVIT model. Every seat is a normal family. Most of them are grouped in group-row within the Revit model. I bet Dyanmo is the right tool for this task.

I lay-out the steps I intend to do hoping to find better solutions or advices from the pros.

I thought of positioning a point, element, in the middle of the forehead of the man sitting in the seat. The other point of the desired perspective would be somewhere in a center stage of the Hall, let`s say 1,5 m tall there. I would place a benchmark family there.

Then running Dynamo and…read the couple of point, and create a list.

Then create a 3dView from one point (always the same at center stage)


So, where are you stuck?

And do you want to keep those 2000 views in your project or do you just need the images?


Dynamo3DviewsThanks for your help.

  1. At the Moment I am looking for create the geometry needed. From the Revit project and family, I haven`t found yet a easy way . It may be a basic thing, but where is the node that says “read the center point from that family…” sot I am working on this part of the problem since I found the node already set(AxonometricViewbyeyePoint-targetandBoundingBox) my intentions are sticking to it but I have not tried yet. I think I have to create a series of node to “catching” that object and get its x,y,z coordinates before applying the AVPBB node. Any help in this regard would be appreciated.

2)yes. I do not have any special request from the boss thus I did not think to move out those views from the Revit project. At the end I would apply a template view , naming them also on plan views and print them out on sheets. It is a control design workflow for such a large Hall.

  1. Firstly I am experimenting with a little hall of 400 seats and if all goes well, doing the same with the main one. The screenshot is my first conceptual flow, without the search for the geometry yet. It shows a japanese name, it is the seat name. The Contesto1 is the ball at center stage. I am not sure, but I think the bounding box needs to vary along with the seats…


bandicam 2015-04-27 12-08-24-247It seems that I am making confusion with dynamo nodes. Even from a sphere, loaded as mass default sphere, I am not able to get Dynamo reading the center point…

How could get to the point to read the central eye of the seat which is composed by 6 different solids…

Still working on it and reading this blog-archive to find the solution, positive about it!


There are two ways you could approach this: either by using the FamilyInstance.Location node or by merging the solids into a single solid (using Solid.ByUnion) and pulling its centroid (using Solid.Centroid). In both cases you’ll have to move the point up a little (using Point.Add) to get the eye position of a person on that seat.



Great. I found the familyinstance.location node through the archive and I reached a further stagebandicam 2015-04-27 14-25-53-248

Right now I am reasoning about the bounding box.

Still understanding how to make it following the seats point. however I am not sure of having fully understood what is a bouncing box.

It should be the frame of the 3dview. A 3d frame or a 2d frame?

In Revit when I change a cameraview - without changing position of the target and the eye - i basically change the border of a rectangle.

The rectangle in my objective would be constructed based on the eye-view thus your last post should direct me in the right path for the solution. Thanks again.

Secondary, regarding the heaviness of this computational process - 2000 - what would you suggest could be the lighter way?


Despite the previous post I am experiencing this abnormous scale up of the model that impedes me of setting the right dimension for the vector…I`ll look for solutions about scaling problems in the archive, it should be something related to the latest version since this is the first time.bandicam 2015-04-27 15-43-46-397 The seat is gigantic compared to the dynamo grid…


It’s because of how they’ve changed Dynamo’s units. The Dynamo grid isn’t dynamic, so the chair seems so big because it’s in mm. If you want to change this you would have to change the unit settings in Revit to meters as Dynamo is copying Revit units.


bandicam 2015-04-27 17-48-34-144Not perfect but I reached a good point. Views are on the Revit File now.

Positions are not the one desired but I think I have to work out how to make the exact bounding boxes and other tweakings.


I had to change the Axonometric View node since I could not understand how to size and positioning the bounding box hence I picked the bandicam 2015-04-28 17-39-54-688

AVbyEyepointTargetandElement option. Now I am trying to understand what is that element? It should be a sort of “frame” to size the view…I noticed that others have troubles to use this kind of Axonometric-node…

it would be a pity because for 2000 views I was considering to consistently add Dynamo in the workflow for the first time ever!

Any hint would be great. Now I am diving into the archive to see if I can find a solution that somebody else posted.


uaifestival, i was dealing with the same problem.

my solution was a python based workflow.

  1. select elements

  2. define directory path

with that ínformation gor into python.

create a bounding box for the element

create an eyepoint and a target (i choose midpoint of bounding box as taget)

from that create your view direction and the up direction

now create a new view with view options

part 1





now create a filter to isolate the element

after that check size of the views’ cropbox

then check for height and with of the elements bounding box

(i went wo square images that is why i took either width or height)

assign new size to views’ cropbox









now start with the creation of pictures

for that we will need an IList.

for that we start with a list of viewId (exactly one)

and after that set the necessary options







last thing important is to be in a transaction.

result is something like that:



Pyhtonfinoa aline40Thanks a lot Peter.

I found the discussion…also there is a Venkow sample there I would like to tackle.

I have copied the code and I am trying to run it…You assumed I understand more than I do of the “Environment” but it is positive thus I can ameliorate a bit.PrimoerroredicodificaPython

After few copying errors I am facing different kind of errors I think. The screenshot show how I connected this Python new node with the rest at the moment…I am sure this is not correct, but I would work on itPERS-Sheetsample

  1. Any chance to get the views within the Revit model instead of exporting outside eventually?

  2. last screenshot is the objective, 80A3 sheets are needed to fill in with each contain 25 3dviews.

  1. Maybe I’m missing something here, but why aren’t you using the built-in PerspectiveView.ByEyePointAndTarget node?

2 ) I have a sample workflow for placing multiple views on sheets here: https://github.com/CAAD-RWTH/ClockworkForDynamo/tree/master/workflow_samples/0.7.x/ComponentLayoutForCNC


Thanks Andreas,

  1. I am just a junior, so I `ll do right now as I read your post.

  2. as 1!


is the Revit file done by Revit2015 ? I guess…

It seems I cannot open any of them.

The dynamo files need the 0. 7 version?

or everything is related to me ignoring github way of working…




I think this may be a 2014 version: https://github.com/CAAD-RWTH/ClockworkForDynamo/raw/master/workflow_samples/0.6.3/ComponentLayoutForCNC/ComponentLayoutForCNC_Sample.rvt

And yes, the workflow was done in 0.7, haven’t tested it in 0.8

For you, only the last few nodes will be relevant for placing multiple views on a sheet, so just look at the image: https://raw.githubusercontent.com/CAAD-RWTH/ClockworkForDynamo/master/workflow_samples/0.7.x/ComponentLayoutForCNC/ComponentLayoutForCNC.png


thank you very much.

  1. About the workflow: unless I mistaking something, the nod called " plan.normal" does not work properly and it impedes the whole flow of well functioning.

  2. Even though I think I advanced in the understanding of the flow, I have to stop for today and keep it up tomorrow!

  3. the thing that remains misterious to me is the isolate element.

Why I cannot see the whole 3dView with all the elements contained within the Revit Model and I see only the element included in the AVBTandEyeandElement when I use that node? Plane-normalnotworkingI mean I put false in the boolean node…


Eventually I did, this morning post suggested me to change the main node and switch to the perspective one.

bandicam 2015-05-01 14-36-54-745Now I am starting to work on putting those on sheet.

I need a test on a counter that says after 25, add1 to the sheet number!


Here’s how you would distribute views on multiple sheets - you’ll need to use List.Chop to create sublists of views:



Thanks a lot. This thread may be marked as solved.

Despite That I am continuing to improve the flow so to understand more and more.

This time I would like to create only Perspective views of certain elements. I provided the seats with two instance parameters, one is the row name and the other is the floor name.

I used the filter by BoolMask. It worked picking up only the values I neede. then I would like to

choose only those seats that contains those values already skimmed and create the perspectives for only those seats. It seems I am running in circles without finding the solution. Thanks a lot, the previous help was fantastic anyway!

P.s. have you worked on the 3dperspective nodes during last week, the result now of the perspective is even better let me seeing not only the isolated element but the whole picture, saving me a lot of time…