I have seen some other threads attempting to do what I am working on with varying success, but I feel as though I am at a standstill. I am attempting to insert fire dampers into ducts where they intersect walls. I have the points of intersection as coordinate points in Dynamo and have the elements for the ducts that intersect the walls, but I cannot seem to make this MEP Fittings node work. I keep getting null values, so I may be passing it an incorrect data type or something of the like, but I don’t see where that would be myself. With my last few attempts, I have been getting an error that “List Indices Must Be Numeric.” If anyone sees anything glaringly wrong, or has other input that may help, I’d be happy with any assistance.
I understand the confusion: it’s probably the ListOfPoints input port that needs some explaining. Because it could be that a duct needs more than 1 fitting placed along its length is why it expects a list of points. As you can see in your graph you are actually only supplying a single list. What you would need to do here (because you only have a single point per duct) is create a list of that single point.
Also for better performance you could try the Intersect nodes from the BIMorphNodes package. Check out this dyn for more info:
Mechanical fitting creation by wall intersection.dyn (22.0 KB)
Thanks a million. I tried chopping the lists on my graph without much luck, but the graph you provided worked and can fit my specific needs with a little tweaking. I may revisit mine later and see what may have been the cause of the issue another time.
I realize it’s been months, but I just got into Dynamo and stumbled across this file you posted. I’m trying to add in a filter for fire rated walls from a linked file but I’m having no luck. Any chance you could explain what’s wrong with my inputs into the code block?
The warning over the code blocks says “String.Contains operation failed.”
Is the Element.GetParameterValueByName node providing a valid output in the filter for fire rated walls section? It looks like you’re feeding it a “Type” rather than an “Element” data type. If that’s not generating an output, then there will be nothing for the String.Contains operation to check against.
I think you’re right so I searched and found a new node that I feel should work, but I’m still getting an error.
Now it says "Could not obtain element from the current document! The id may not be valid. So maybe the Element.GetParameterValueByName node won’t work with linked elements?
Edit: I tried this as well.
I’ve been trying to get the exact same thing to work and my system either does nothing, or crashes every time. I’m in revit '18, Dynamo 2.0.2 (on auto run). I’ve stripped every possible conflict and I’m using a single duct, a simple damper family, and 2 points (to force the list behavior that has caught up some other people). If I leave the files as they are - nothing happens; If I ‘chop’ the list in order to create a deeper data level depth I get a frozen revit/dynamo that requires killing from the task manager. @T_Pover do you have any idea why I wouldn’t be able to do something so simple?
DamperPlacementTest.rvt (484 KB)
MEPover_Duct-Placement-Test.dyn (11.1 KB)
Try setting your run execution to manual instead of automatic. I would recommend doing this for any other graph as well.
After that try setting your lacing on Curve.PointAtParameter to Cross Product. Dynamo 2.0 seems to work a little different with the lacing when compared to 1.3, whereas in 1.3 you could set it to longest and get the same result.
Here’s the result I get with an extra duct (then you can clearly see the required ListOfPoints per duct) and the lacing set to cross product.