Wish: To be able to retrieve possible values for parameters of the storage type elementId for families with nested non-shared families controlled by a <familyType> parameter.
Background:
I have a family with nested families which are controlled by a family type type parameter. (Storage type ElementId)
I've snooped the family instance to see what values are set for the parameter when I have different types selected. I can find those elementIds, can hard code them in, and it works. But I really need to be able to figure this out at runtime.
For example: one of the family types nested (not shared) in my family is named "Circular". I've searched all the elements and element types in the main document via filteredElementCollector(revitDoc) and cannot find one named "Circular", however, if I ask the document to GetElement() associated with my hard coded Id, it gives me an element with the name "Circular". So I know it's in the document!
The element Ids in the family document itself are not the correct ones either: My suspicion is that when the family is loaded into the Revit project document, the nested families are assigned element Ids but are excluded from being accessed via the filtered element collector.
NOTE: they could potentially be found if they were shared but they are not shared. (If they were shared, they could be found through the "sub-components" property of a placed familyinstance and from there, I assume we could get their types)
I happen to know exactly what I'm looking for (my family has four nested types that I want to control programmatically) but in the scenario where I don't know, I think being able to know what types are available in the family for switching would be very useful.
Can't find what you're looking for? Ask the community or share your knowledge.