I’m aware of the family instance point and vector/orientation queries in Dynamo, but are there more advanced queries such as pulling workplanes or adaptive points from family instances? This would allow me to very finely control how I place and orient families such as this seat pictured below. Any tips appreciated.
In the Revit SDK there’s a RevitAPI.chm that gives you a deep insight of what is going on under the hood.
In the picture below there are the creation methods for the family instances that you can access to from Python.
If its an adaptive family then how its orientation is controlled entirely based on point placement. You have control over points inside of the family but when placed they all behave the same (or they should). So setting point orientation to be project vertical will orient that point accordingly when placed. Given that for an adaptive point family you place it by points or uv points on a host.
Other family instances you can load using any of the overloads that Paolo mentioned. Some of them are available in Dynamo but not all. Let me know if you need any help incorporating any of them into your scripts. I am sure I have some examples or at least thought about making some.
Thanks Konrad and Paolo.
So it turns out that AdaptiveComponent.Locations works for my 2-pt adaptive component chair family UNLESS it is used as a Repeater.
ACs used as Repeaters will return the chairs’ 2 adaptive points but returns them as coincident to the Divided Path Node being used to organize the element repetition.
See the image.
Has anyone else seen this behavior?
So what you are getting is a XYZ location relative to the family that the points are nested in (used as repeating items)? That makes sense, but I am going to guess that this family now, has something called Transform property. Transform will probably hold the difference between family location and actual project location so that you can still get it relative to project base point. This is an interesting problem. I will check it out as soon as i got a min.
I am guessing you want a location relative to project base point. right?
Yes, provided that means I’ll still get two unique adaptive points per element from which I can derive an orienting vector. Does that make sense? Thanks Konrad.
Anyway I realized that if I was going to be working with repeaters then I would want divided path nodes and the underlaying curve (from which I can extract the curve frame based on closest path nodes) rather than the adaptive points - which is what this whole spiel was about http://dynamobim.com/forums/topic/query-model-curve-from-divided-path/
It would still be nice to somehow get the underlaying adaptive point coordinates for adaptive components placed via repeater just to know how to do it