Fabrication Part Length change

Hi All,

Is there a way to change the Length in Edit part from Value to Auto with dynamo? 1400 is our standard length and must be set to Auto.But for some reason when I optimize length, first duct is set to Auto and the rest have Value even if the length is 1400
image


Have tried to change the Length option using Setparameter and comes back with warning - The parameter is read only.

Thanks in advance.

test1.dyn (42.4 KB)

This is because that parameter can not be written to - it’s derived from something else such as the length of the geometry. You will have to go back and update the item itself. However I do not believe that you can ever create the ‘auto’ value across the board.

Hi @JacobSmall

Thanks for the reply, I found a workaround to it. I disconnected the elements (thanks to @cgartland), now I can change the length to Auto. I managed to get a python script (@T_Pover) to connect the elements back again. Works like charm and save me from redrawing a lot of ducts :slight_smile:

1 Like

Did you change the values automatically to “AUTO” or did you have to do that manually?

Also, can you help me with the dynamo script / node used to re-connect the elements?

Thanks!

EDIT - found how to disconnect with LunchBox.

Hi Shane1,

Yes there is a dynamo graph to disconnect selected elements. I isolated all the elements in a view and ran the graph and it worked. I was the able to set Auto to all 1400 long ducts. The downside to this is all elements will be disconnected like shoe, spigots… I would do this right at at end when you are going to do MAJ.
Short answer, I did not do it manually. I have not worked on these graphs for a long time, let me know how you go.
Run the disconnect graph first, then change length to auto.
if needed run the join fab element graph (Some time join fab duct graph creates network need to be careful)
Hope this helps.
See graph below- with Change Length to Auto.dyn (34.5 KB) Join_Fabrication_Elements.dyn (26.2 KB)
Disconnect_selected.dyn (8.2 KB)

Since I originally posted, I created a script that checks length against known stock length of similar connector type parts (TDF/TDF and 2’2’’ for this example). It then looks at the Length option value, and filters them that are set to “Value”, and selects them in Revit.

Next, I use Up Rev to create a 3D view that isolates these parts. Selecting these parts I then disconnect everything, and set the length option to auto. I create the 3D view so I can easily select these same parts again, and watch them for changes when I apply the rest of the changes.

I just used the Join_Fabrication_Elements.dyn" script (thank you for this), and it works… I’m curious why you filter for insulation, and liner here. Also, the last step is to run a python script - this is where them magic happens I guess. Can you share that script with me? How do i see it in the .dyn (if it’s possible) I’m curious how you do this. I’m also curious what you mean when you say

(Some time join fab duct graph creates network need to be careful)

Do you mean that it creates a system with these connected parts? I’m not quite sure.

I opened the Change Length to Auto script, and noticed some errors - but it’s indicating I don’t have a DLL that should be included with Dynamo. I’ve attached the script I’m using, and would love your feedback.I also have a section in there that I tried to get working looking at the actual connector values, but when I have a part with more than two connectors it breaks. It’s at the bottom of the .dyn attached

Thanks for sharing your expertise with us!

Here’s the custom packages I’m using in this script.
DynaFabrication2018 v.0.0.6
spring nodes v.204.1.0
MEPover v.2020.6.2
Clockwork v.0.90.7
LunchBox v.2018.7.6

sort_length_disconnect_length_option_to_auto.dyn (139.5 KB)

Here’s the error I get mentioned above.

I’m answering some of my own questions! I figured out how to see the python script in the last node. I will spend some time learning what this script actually does.

I think that you’re filtering insulation / liner, so that the script does not try to connect them. Is this what is going on?