# Dynamo Pack & Go?

**URL:** https://forum.dynamobim.com/t/dynamo-pack-go/20682
**Category:** Uncategorized
**Created:** [April 4, 2018, 4:59am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682 "2018-04-04T04:59:10Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![truevis](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/truevis/32/8634_2.png) [@truevis](https://forum.dynamobim.com/u/truevis)
#### Post date: [April 4, 2018, 4:59am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/1 "2018-04-04T04:59:10Z")

</div>

Any good way to find out what packages are associated with a Dynamo graph? I’d like to let others use what I composed, but with only the minimum of referenced packages.

---

<div class="post-metadata">

### Author: ![Dimitar\_Venkov](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/dimitar_venkov/32/2068_2.png) [@Dimitar\_Venkov](https://forum.dynamobim.com/u/Dimitar_Venkov)
#### Post date: [April 4, 2018, 5:10am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/2 "2018-04-04T05:10:28Z")

</div>

This has been a major request for a long time with little progress so far:

> <https://github.com/DynamoDS/Dynamo/issues/1171>
>
> It would be really helpful if Dynamo could automatically determine the dependenc…ies of a \_.dyn file \*and\_ offer to install the required packages. 
> (When sharing larger graphs with a lot of custom nodes, it can become quite tedious to go through the whole graph and find all the custom nodes.)

There was a great discussion on some ways to address this here:

> [@Find nodes and packages in use in a graph](https://forum.dynamobim.com/t/find-nodes-and-packages-in-use-in-a-graph/16367/):
>
> Following [this discussion](https://www.revitforum.org/dynamo-bim/36446-there-easy-know-packages-im-using-particular-graph.html) on how to list packages and nodes in use in a graph, I thought it could be a good idea to share here what I have tried so far - from what was initially shared by ScubaMan - and see if any improvement could be proposed. For the moment, the graph should list the paths of custom nodes, where the names of the packages can be found, but I have still no idea how to identify which packages the Zero Touch nodes belong to. Any idea, link or contribution are welcome…

using springsUI and some set logic, you could do the following for the active graph:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/d/a/da3615f3e4b0d39a070f361c01e4fd77caaef345.png)

---

<div class="post-metadata">

### Author: ![truevis](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/truevis/32/8634_2.png) [@truevis](https://forum.dynamobim.com/u/truevis)
#### Post date: [April 4, 2018, 5:33am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/3 "2018-04-04T05:33:46Z")

</div>

Of course, an ultimate feature would be to have a graph compile into an Add-In wrapped up similar to Dynamo Player. (Would that it could be hosted in the Autodesk Store, too.)

---

<div class="post-metadata">

### Author: ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)
#### Post date: [April 4, 2018, 8:27am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/4 "2018-04-04T08:27:17Z")

</div>

Issue I see with automated package downloads is that different versions of packages have different node names and functions - by opening a dyn which triggered a download of an older package you would create an issue with two versions of the package on the same system, which can break things.

My recommended work around is to document all custom nodes in the graph, by adding a note indicating which package and version each custom node is from. This way those who are managing package and graph libraries get to make a decision as needed to add content into the system.

---

<div class="post-metadata">

### Author: ![truevis](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/truevis/32/8634_2.png) [@truevis](https://forum.dynamobim.com/u/truevis)
#### Post date: [April 4, 2018, 8:32am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/5 "2018-04-04T08:32:52Z")

</div>

> [@jacob.small](#):
>
> > My recommended work around is to document all custom nodes in the graph, by adding a note indicating which package and version each custom node is from.

Would be even better if the computer did this for us by keeping those data in each node for us to see.

---

<div class="post-metadata">

### Author: ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)
#### Post date: [April 4, 2018, 8:37am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/6 "2018-04-04T08:37:46Z")

</div>

The system isn’t designed to store the data that way - they have to be able to pull from the version of the package which is available - be it an older or newer version of the node/package.

---

<div class="post-metadata">

### Author: ![Marcel\_Rijsmus](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/marcel_rijsmus/32/8539_2.png) [@Marcel\_Rijsmus](https://forum.dynamobim.com/u/Marcel_Rijsmus)
#### Post date: [April 4, 2018, 8:49am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/7 "2018-04-04T08:49:11Z")

</div>

@truevis, @jacob.small, @Konrad_K_Sobon

Put a reference in the namespace, solving another problem at the same time, if possible

> [@Archi-lab breaks native codeblock references](https://forum.dynamobim.com/t/archi-lab-breaks-native-codeblock-references/19868):
>
> With the latest archi-lab package installed the native “FamilyInstance.ByPoint” will not function in a codeblock and if you try to turn the native “FamilyInstance.ByPoint” into a codeblock via the “NodeToCode” option Dynamo will crash. I suspect the package recycles some reference names that shouldn’t be duplicated. Pulling the package fixes the problem.

---

<div class="post-metadata">

### Author: ![Jonathan.Olesen](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jonathan.olesen/32/44242_2.png) [@Jonathan.Olesen](https://forum.dynamobim.com/u/Jonathan.Olesen)
#### Post date: [April 4, 2018, 9:03am UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/8 "2018-04-04T09:03:19Z")

</div>

This thread might be of interest as it discuss and automate the capture of dynamo nodes, and packages used in a .dyn file.

> [@Find nodes and packages in use in a graph](https://forum.dynamobim.com/t/find-nodes-and-packages-in-use-in-a-graph/16367/26):
>
> Hi All, @awilliams informed me of a CSV export error, I believe this is now fixed (Null Values being passed). I have removed the last download link and here is the new one: [Sastrugi - Audit DYN File.dyf](https://forum.dynamobim.com/uploads/short-url/f6IxNerNZxHlWOVUaSr2t9wh9R0.dyf) (251.4 KB) Also, I have investigated integrating a similar search function to the “What-the-Node” in Rhythm. This got a tad intense, so I have adjusted the Audit node to tell users when a node’s package isn’t found and suggests using the Rhythm node separately. @Steven I am glad that it fu…

---

<div class="post-metadata">

### Author: ![truevis](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/truevis/32/8634_2.png) [@truevis](https://forum.dynamobim.com/u/truevis)
#### Post date: [April 6, 2018, 7:53pm UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/9 "2018-04-06T19:53:30Z")

</div>

> [@Dimitar\_Venkov](#):
>
> using springsUI and some set logic, you could do the following…

Yours is more succinct. Here is my version:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/0/7/079aefda67d35e165ad3153aed399f2ba785cb3c.png)  
Then paste into a Note eg: “This DYN uses packages: {archilab,Clockwork}”

I published it: ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/a/d/adc282e7be76fa5bcff1de1023856fc7147e038d.png)

---

<div class="post-metadata">

### Author: ![adam\_bear1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/adam_bear1/32/13411_2.png) [@adam\_bear1](https://forum.dynamobim.com/u/adam_bear1)
#### Post date: [April 10, 2018, 4:23pm UTC](https://forum.dynamobim.com/t/dynamo-pack-go/20682/10 "2018-04-10T16:23:10Z")

</div>

I recently made minor adjustments to @Dimitar_Venkov python with #comments and going step by step to help explain what the code is doing. this is great thank you 🙂

```
#https://forum.dynamobim.com/t/dynamo-pack-go/20682/2

# 'builtin is a list of nodes that are built into dynamo'
# 'so we dont need to include them as custom packages'
builtin = {'Revit','Display','Geometry','BuiltIn',
			'Core','Office','Operators'}

# 'we dont want to know every single node in the graph'
# 'just the packages, so we can use the split function'
# 'to look.for.stops.like.this and return just the first'
# 'value in the above example this would return look'
NodesSet = set(i.split('.',1)[0] for i in IN[0])

# 'subtract the builtin nodes'
nodes = NodesSet - builtin

# 'in order to sort the set of nodes alphabetically'
# 'they need to be made into a list'
# 'first we create an empty list called packages
packages = []

# 'for each node in the set nodes
# 'the node is appended to the end of the list packages'
for node in nodes :
	packages.append(node)

# 'the packages are sorted as if all the items strings'
# 'were lowercase, even though they are not'
SortedPackages = sorted(packages, key=str.lower)

# 'the SortedPackages are outputed'
OUT = SortedPackages
```
