Filtering / Selecting Curtain walls

This should be very simple, but I am struggling: how can you filter out all Curtain Walls from a list that contains all Walls in a project? Or conversely - How can you select only all Curtain Walls in a project? I am selecting : All Element of Category >> Categories: Walls. When I look at Element.Parameter of this list, every wall has a parameter called Family. It is either a “Curtain Wall” or a “Basic Wall”. But I can’t use this information. when I access this parameter usingElement.GetParameterValueByName it always return the “Type” name instead of they family name. Please let me know what I am doing wrong.

Thanks.

1 Like

Another option is to use clockwork’s “Element.ParameterExists” with any parameter specific only to curtain wall instances:

Vikram & Dimitar, thank you both for your responses. Either of these solutions will help me move forward.

To help understand what is going on under the hood with Dynamo, I have a couple follow up questions:

  1. Why is is that the “Element.GetParameterVAlueB yName” node is returning a value of “Type” parameter when asked for the “Family” Parameter?

  2. Both of the solutions recommended above are still ‘work arounds’. Why is it that something as simple as “Select all curtain walls” so difficult accomplish? This is not a rhetorical questions, I am genuienly trying to understand.

Vikram,

Your suggested approach worked really well. The only change I had to make was to to check for the Family and use it as a Bool Maks. The reason is the “List.GroupByKeys” doesn’t mantain the sequencing of the group between various iterations. So sometimes the ‘Curtain Wall’ were at index 0, then later ‘Basic Wall’. Using the Bool mask makes the graph reliable.

Alternative approach:

Select all the CurtainWallPanel objects, then select the hosts. My logic is that all CurtainWallPanels must be hosted by a Curtain wall ?

I have noticed some general weirdness with curtainwalls- for example non-existent objects refer http://dynamobim.org/forums/topic/curtain-panels-non-existent-objects/

For instance, sloped glazing in a roof contains CurtainWallPanels- so maybe my idea does not work.

I’m not sure why the 2 nodes below don’t work

 

1 Like

Hi Andrew,

Try Uninstalling those 2 nodes packages and re-install them. See if it helps!

Hi Vikram, Thank you for providing suggestion. I am quite new to Dynamo. I tried your approach to select curtain walls. It turned out that List.FirstIndexOf node does not work. It there anything I did wrong or is there a clue to solve the problem? Sorry to bother you about this old topic.

1 Like

Zia,

Vikram should have answered this one, but I’d like to point out the solution if you don’t mind.
You need to check out the lacing.
I am sure you might solve this problem already. :grinning:

1 Like

Thanks very much for your help, Hyun_Tak. It works well now.

Ok, so I am trying to copy the curtain wall text (“Curtain Wall”) from the family of all of my curtain walls to a new parameter called TESTING. I am having the same issue as the OP was having with the types being listed and not the Family Curtain Wall itself. Even with the types as the input to the set parameter node I just get a bunch of NUlls. The error says “No Parameter found by that name”.

I see that the OP removed the group by keys nide and so did I and replaced it with his boolean. I have the lacing set to Longest as suggested in an earlier post. I just am not sure what is wrong. Can anyone offer some help?

Revit 2019 (Ya I know, we are behind the pack in this regards)

I have also gotten this error while trying to troubleshoot:

Warning: Element.SetParameterByName operation failed.
The parameter’s storage type is not an Element.

Just getting into DYFs, but this basc version works in 2022 R22:

WallType.CurtainWall.Isolate.dyf (26.1 KB) (Updated to only accept walltypes!)

1 Like