Revit 2017.1 Dynamo player

Nope, it’s just running the graph as is.

Thys dynamo player would be a improve speed in charge geometry create with dynamo?Or is just something that can charge a dynamo definition in a easy way?

I don’t think the graph will run any faster. The startup time is a lot faster though as you don’t have to start Dynamo and open the definition.

Awesome…for running scripts where no manual selection is required.
Just used this with a script where two splines are supposed to be selected and now it hangs :wink:
Nevertheless…awesome piece of additional functionality to Dynamo / Revit.

Any chance we will get that player for 2016 as well?

with nodes that use the pickobject(s) method, you can perform your element selection even when playing the script through dynamo player . Here’s an example with rhythm’s “pick model elements” :


Looks really Interesting

Did you see @Mostafa_El_Ayoubi comment? pickobjects can still work with Dynamo Player :slight_smile:

1 Like

Haha! Nice find! Yes, the Revit team is looking at input methods, but starting simple. Really interesting to see this discovery.


@Mostafa_El_Ayoubi nice find!!

1 Like

Nice find! even if it seems that the script took a “long” time to load. Is that because it prepares an input? or is it just dynamo loading in the backgroud?

It runs much faster when I’m not recording a gif :slight_smile:

1 Like

Haha of course, sorry I didn’t think about that. Still have to try the player btw

Any chance it could read a master folder structure? So we can keep routines organized?

Do you need the person to load custom nodes too in order to run the script?

Hi ,
Until the option of customized deployment of Dynamo Player is provided in a more friendly way , here is an workaround :
The “history” of DynamoPlayer and by “history” I mean last scripts folder used , window size and position is located here :
"c:\Users\YOURUSER\AppData\Local\dynamoplayer\User data\dynamoplayerinstance 1"
It is possible to see here more than one instance directory :
…\dynamoplayerinstance 2
…\dynamoplayerinstance 3
This happens if you are using multiple instances of Revit and DynamoPlayer.

You’ll just have to start the Player on your machine and chose your preferred folder and then close it.
At this point the history is saved under …\dynamoplayerinstance n.
Then you can copy the folder …\dynamoplayerinstance n on multiple machines under different users and they will all benefit from the initial history you prepared.
Make sure you don’t copy this file on your target path …\dynamoplayerinstance n\lockfile.
This file is used by the underlying platform Dynamo Player is based on to indicate that a particular instance is in use.
The lockfile is automatically created and deleted when DynamoPlayer starts and is closed.

Keep in mind that history is used on first come first served basis.
So first time you start Revit and Dynamo Player …\dynamoplayerinstance 1 will be used.
And the …\dynamoplayerinstance 2 for the second instance of Revit and Dynamo Player and so on.

You can also delete these instance folders if you want and “history” will reset itself to application default and DynamoPlayer will point to default scripts folder.
So I imagine someone could create all kind of scripts to control the history of multiple users and multiple instances on the same machine or different machines.


@Zach_Kron Sweeeet!

Ya, Bzz is Bogdan, developer on the Player. He knows of what he speaks.


i tried to use a script on a face with dynamo player,
But it doesn’t work, always say “Run completed wit errors”.
This is the start node of the script.
Can someone help?

I created a node for this purpose (Node-Mode):

#Copyright (c) mostafa el ayoubi
#Node-mode 2016

import clr

from Autodesk.Revit.DB import*
from RevitServices.Persistence import DocumentManager
import Revit
from Autodesk.Revit.UI.Selection import ObjectType

doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
faces = []
dsfaces = []

for f in faces:
	for r in f:
		e = uidoc.Document.GetElement(r)
		dsface = e.GetGeometryObjectFromReference(r).ToProtoType(True)

OUT = dsfaces