How to use Tool.Create Assembly properly?

Hi, I’m trying to create assemblies for the filtered out generic model families and name the Assemblies by the type marks. This is as far as I can get so far. I’m not sure why but it just creates one assembly view. Also the second time i extract the Type Mark to name the assembly seems to extract no values. Thanks for any help. Still newb trying to find my way.

So reading some other posts. I used list map and transaction.end node and got a better result. But it only created assemblies for Moulds 70 to 78. Not all 140. A bit closer but still need help :slight_smile:


image

Hi @vanman,

When you look at the output of the “List.Map” node it looks like 140 “AssemblyInstances” were created.
Your second picture shows the “AssemblyTypes”.
So could it be that you have a lot duplicates (9 different family types, and 140 placed family instances).

Maybe you can post your project and dynamograph ?

Kind regards,
Mark

1 Like

Hi MJB,

I have 140 different family types. Used multiple times in the project (840 instances of those family types).

I will need to make an assembly of 1 of each Type Mark to make assembly views easier. Then an assembly with the left over types together for scheduling purposes. There will be two schedules on a sheet but the viewer wouldn’t know. Not sure how to get around that. Will hopefully end up with a bunch of assemblies lists that say,

Mould 1 (just the one)
Mould 1 Schedule (all the rest of mould types selected in another assembly)
Mould 2
Mould 2 Schedule
Mould 3
Mould 3 Schedule

Please find a link to an example project and dyn. script. I’m starting to go cross eyed. Any help is much appreciated!

Assemblies start.dyn (25.9 KB)

http://twk.pm/h1p7xmk5x8

Been updating this as i figure stuff out. Had some help that I need the List.GroupKey to come close to what I’m trying to achieve. Created assemblies for all the individual Moulds! It named them correctly because there in order of the list. Not sure how to name them correctly using the tool.renameassembly. Just got to figure out how to group all the other instances for schedule assembly instances

Hi @vanman

is this what you are after?

The Python Script:

RevitTypes=IN[0]
Moulds=IN[1]
UniqueMoulds=IN[2]

dict1=dict(zip(Moulds,RevitTypes))

Types=[]
for i in UniqueMoulds:
    if i in dict1:
        Types.append(dict1.get(i))
        
OUT=Types

Assemblies start-FINAL.dyn (22.4 KB)

1 Like

Thanks for your help Salvator, I’ve finally got it doing what i wanted, learning lacing and levels in list really helped! It only works if theres no assemblies created yet and revit is set to the right naming convention. Heres the script if anyone is interested. On to make some assembly views :slight_smile: Also the package prorubim has assembly nodes that work differently

Assemblies start.dyn (141.3 KB)

Hi @salvatoredragotta,

Wow… always amazed what a few lines of Python code can do :thumbsup:

Kind regards,
Mark

1 Like

Hi @salvatoredragotta,

Would it be difficult to edit your script, that it also would output a second list with the leftover (not unique) types ?

Kind regards,
Mark