Hi @therainbowmaker, just describing the script above; The select model elements node requires the user to physically select the group of elements that want to be filtered. I was using this to select a group of pipes after i’d already filtered the Revit 3D view to only show pipes but on various systems, then you need to select multiple pipes by fencing (i think that’s the correct term, i.e. dragging a box over the pipes), otherwise if you try to click on each pipe it’ll only select the last one you clicked.
Then the script firstly looks for the “System Type” parameter of each of the selected elements and lists it out. This only gave me the element ID and not the “System Type” so i then used the “Element.Name” node to get the “System Type” of all the selected elements in a list.
The “==” node then checks to see if what is connected to it’s x input matches what is connected to it’s y input, in this case it checks the list of element system types against the system type I am looking for, which is “PH - Domestic - DHW - Flow” in this case. This then produces a true/false list, i.e. true if they match and false if they don’t.
The last node “ListFilterByboolMask” then compares the original selected list with the true/false list and splits the list between true & false, then you can choose if you want to use the true or false answers (or both) for something else, like writing to an excel sheet or simply creating a new Dynamo list etc, this is done from the In or Out connectors on the bool mask node.
I hope that clarifies. It could be more automated by having some other nodes to get a list of all pipes in the project, but for my purpose I was happy to filter the Revit 3D view and select pipes manually. The same could be achieved by setting up a Revit schedule in your project and not using Dynamo at all, but this was quicker to setup for me in this instance.