I’m trying to use the FamilyInstance.Symbol node and I get the following message; Warning: No function called %get_Symbol could be found. Please check the name of the function.
The inputs for the node are Categories (with Walls selected) linked to All Elements of Category linked to the FamilyInstance.Symbol node.
I am ultimately trying get get a list of the values of the type parameter Assembly Code for various categories so that I can color code the elements based on these values.
Walls and floors are a bit different than standard family instances. They are system families and to query their types, you will need to use the “Wall Types” and “Floor Types” nodes.
You could try modifying your approach similar to this:
Next question… when I grab the element parameters for the wall types they are not in the same order. The Assembly Code, for example, in one list is at index 42 and in another list is at index 22. I figured I’d be grabbing the parameter at a specific index but that means I need to get the parameters in the same order.
Thoughts? Is there a way to grab just the parameter I want using a String?
Edit - Okay. I figured out a way to extract just the parameter I want. It’s probably the long way around but I’m making this up as I go along – String from Object - String.Contains - List.FilterByBoolMask - Flatten - String from Object - String.Remove (the first so many characters… it would be nice to just pull everything after a delimiter) - List.UniqueItems - etc. – like I said, it works but on a large dataset will probably take some time.
Problem now is that the Assembly Code shows blank in Dynamo even though it has a value in Revit. Is this parameter just not exposed or am I missing something else?
Color Element by Type Parameter
The “Assembly Code” is a type parameter, not an instance parameter. The “All Elements of Category” gets you unique instance of the family or type. To get the “Assembly Code”, you have to extract it from the wall type, not the wall instance. I hope that makes sense.
Yeah. I get that. In your previous example I saw a place for the Assembly Code and thought it was pulling both Instance and Type.
Okay then… is there a way to dynamically grab element types? In your last example you manually picked the Types but I’d rather this definition grab them on the fly. That’s what I was trying to do when I started the thread anyway.
Do you mean is it possible to pull the family type of a family instance?
If so, yes, that’s possible. For placed families (like e.g. furniture) the built-in Family.Symbol node you mentioned in your first post will do the job. As Dimitar said, it’s a different story for system family types. The reason for this is that they call their types in different ways (or to be more precise: with different commands) and there is no built-in node for that. I made a custom node called Element.Type that should work for some (maybe not all) of the different categories of system families (in package Clockwork). So for example, a workflow could look like this:
Pull all walls in the model using the Categories dropdown and All Elements of Category, then get the wall types using Element.Type …
I hope that that is what you were after.
Yes, I think this will get me where I need to go. Good to know I was at least headed in the correct general direction with the Family.Symbol node.
I would go with what Andreas suggested, if you only want the “WallTypes” currently in use.
If you want to query all “WallTypes” loaded in the project, you can use “Element types” in combination with “All Elements of Type”. do not ask me what is the difference between the All element types/All elements of category because that is some dark secret that only Revit’s developers know
But generally the built-in system families like walls/floors/views/levels/grids and their types are under elements and all families that can be instanced and have a “FamilySymbol” are usually under categories. However the two do overlap sometimes and this is why I find this so confusing at times as well.