Do you mind posting another screenshot with the output previews enabled for the various nodes? It will help when checking list levels.
As for the question in the screenshot on transaction nodes… you should not need them for this workflow. You are correct in that transaction nodes allow you to sequence parts of the graph so that it matches the intended workflow, but typically that comes into play when you are handling elements in Revit more than once.
For instance:
“Make an empty sheet, then populate the new sheet with a view” could require transactions (element is created, then element is modified).
“Collect/filter a sheet list, also collect/filter selected views, then feed them into a placement node” should not require transactions (elements are handled separately).
Additionally, the passthrough node does essentially the same thing as start/end (anything downstream won’t fire off until the upstream parts of Waitfor are done), so it would be redundant to use both.
The error message is “view cannot be added because it is already on another sheet” (it’s not) - perhaps it is confused by the callout marker which is placed in a sheet view.
I wonder if it could be a sequencing problem. Any help appreciated.
When you say the call-out is placed in a sheet view can you explain that a little more. Also, just for clarity the call-out is not technically a View, it’s a Viewer that references a View. I have had some issues in the past working in full blown add-ins that have suffered a similar problem. You could use getParameter node and ask it for Sheet Number and shee what it says.
Hi SeanP,
Thank you for your reply.
What I meant was that the callout itself has been placed in a view that is placed on a sheet. See attached screenshot (A= callout in question, B= sheet title block).
But when I use element.parameters the sheet number is shown as " — " (note I get the same result with element.getparameterbyname). See second screenshot item C.
Question 1:
How can I find out what Dynamo thinks this object is (i.e. click on object, use a node to query “what is this object”? - is it a view, a wall, a model line, a title block, etc?)
Question 2:
Perhaps I should use the parameter for “view name” to get the view itself in Dynamo, and place that on the sheet? (note screenshot item D)
I could use a similar method to getting the sheet (all elements of type “views”, filter by boolean mask).
Hope that helps. Many thanks for your advice.
Note I am using now the springs node selectelementsinorder which does not change the behaviour of the graph.
The object.type of a selected callout seems to be “unknownelement” so I guess it won"t be recognised as a view. This seems strange to me, because when you click on a callout in Revit its properties show as a view.
OK, I have added some nodes that get the actual view, based on the parameter “view name” of the callout.
This seems to be working now - click on callout and it places it on chosen sheet (I will use Dynamo player).
If anyone can suggest a way of streamlining this graph I would be very grateful.