MEPFitting.ByPointsAndCurve not working for >2 dampers on duct

Hi all,

I’m trying to place a Damper family at duct intersections with fire-rated walls, floors, and ceilings.

I’m using the MEPFitting.ByPointsAndCurve node from MEPover, which almost works, but if a duct intersects more than two fire-rated walls, it creates overlapping and disconnected duct segments (see screenshot).

I’ve attached:

  • The damper family

  • The Dynamo graph (top of graph: wall intersections, bottom of graph: floor/ceiling intersections, which aren’t working as intended. See last screenshot)

Has anyone run into this before or see what I’m doing wrong? Any advice or example workflows would be really appreciated.

Thank you!

HED_PlaceDamperAtDuctAndWall_.dyn (238.2 KB)

DUCTA_Damper-Rectangular-Backdraft_HED.rfa (1.5 MB)

You’re going to struggle as the way the MEPover node handles multiple ducts and dampers in a particular way. Strictly ducts = [duct, duct] points = [[point], [point, point]] even then you get weird results.

I have found Ducts.InsertDamper from archilab works better with multiple dampers. (Although I note that your family was slightly offset sometimes)

Hi @Mike.Buttery , I appreciate your response. I tried that method initially, but it placed a damper at only one wall intersection. I tested a few different data-structure inputs without success. I’ve attached the graph using Ducts.InsertDamper from archi-lab in case you want to take a look. Any ideas would be appreciated! Thanks!

HED_PlaceDamperAtDuctAndWall_archilab.dyn (231.7 KB)

Hi
you can try something like this and see if it’s better, I’ve only tested horizontally
Revit_1ligBiMCpo
testacc.dyn (41.6 KB)
edit…just test…PS should work vertical as well and works for both ironpython 3 and pythonnet 3

3 Likes

Hi @sovitek First of all, thank you so much! I’m really making progress. Your code runs perfectly when the walls and ducts are in the same file, but when the walls are in a linked file, the dampers don’t get placed. I’ve attached the test graph where I merged your code. Any idea what I might be doing wrong? Thanks again!

testacc_link.dyn (54.9 KB)

1 Like

thats should be the same, just solid from your linked walls…and if something doesnt work as you expect, is for sure coordination issue between the disciplines…origin;)

@sovitek I agree, it should work the same way. I can see that the wall and duct geometry are intersecting in Dynamo, and all the points are showing up correctly, but the Python node isn’t outputting the fittings (see screenshot).

@sovitek Update! I realized the Python engine was set to CPython3 by mistake. After switching it to IronPython3, everything is working perfectly now. Thank you so much for your help. I really appreciate it!

I’m now noticing an unusual result with the vertical ducts. I’ve attached a screenshot and the Dynamo graph. Whenever you have a moment, I’d appreciate any thoughts or suggestions you might have.

Thanks again!

HED_PlaceDamperAtDuctAndWall_Vertical.dyn (107.3 KB)

Allright i have just tested again and works nice here vertical as well, do you have a small rvt sample where it doesnt work for you, and we can test…ps cant really test your graph as i dont use archilab or bimorph in the moment :wink:

2 Likes

ps maybe your have ducts there dont intersect try filter for thats as well…but guees its about sorting the list the right way


testacc.dyn (48.2 KB)

Hi @sovitek I’ve attached my current graph that is not using any packages. The script works well in a simple test file containing only floors, ceilings, and ducts, but it generates unusual results in the full project file. I suspected an issue with the list sorting, but after reviewing everything, I can confirm that both the duct list and the point list are sorted correctly, and the intersecting points are aligned in the expected order. I’m unable to attach the project file due to upload size limits, so I’ll keep troubleshooting on my end until I track down the issue. Thanks again for your help!

HED_PlaceDamperAtDuctAndWall_Vertical_no-package.dyn (94.3 KB)

1 Like

thanks…yeah not sure then, maybe try run it in areas until you find the issue,ps you can trty this version here for cpython 3 but not sure if it is more stable in your situation

testacc.dyn (44.4 KB)

and another way where you can split first genius loci have a node for that…not sure if it more stable…maybe @c.poupin have an idea ;))

Revit_nwjf7xv5TI
splittestacc.dyn (16.9 KB)

1 Like

It might be a binding issue; try with the player.
If the bug persists, as @sovitek mentioned, we’d need a sample RVT file that’s causing the problem to test it.

1 Like

Hi @sovitek and @c.poupin Thank you both for your suggestions. After a lot of troubleshooting, I was able to get the vertical duct workflow working properly by purging all duct accessories first and then running the script. I’m not entirely sure why that step affects the outcome, but that’s what ultimately resolved the issue.

2 Likes