To make the swappable profile, use a Generic Model Adaptive template, but don’t add any Adaptive points.  Set the 2 reference planes in the template to “Defines Origin”.  You can parametrize this as much as you like (just don’t use Reference Lines – you need a closed profile of Model Lines as per any Profile).  Then, load this into another new Generic Model Adaptive family.  Host the Profile component on a hosted point (that is, one that has been placed on a line).  You will need one of these nested Profiles at each end of a line to control the form properly.

I am in the habit of using hosted points to host Profiles now.  For example, in a 2pt Adaptive with a Reference Line, I will add 2 hosted points to the Reference Line to carry the Profile instances.  These hosted points will be forced to the end points by using a parameter for zero, and another one for one, and forcing these values by putting 0 and 1 in the Formula box of the Family Types dialog (see image).

If you are using hosted points (make a new point, and drop it on a Reference Line – it will be come a small dot if it is hosted on the line), you can actually adjust the rotation Angle using a parameter – this makes it easy to rotate the profile around the hosting line.

Here is the really cool part – you can apply a Label parameter to the Profile instance in the host family, and then directly swap Profile shapes (different nested RFAs or types in the same RFA, both work).  This even works from the Project Environment.

If you want to drive the profiles parametrically via the host family, you will have to make them un-Shared (otherwise you can’t map parameters from Type to Host).  You can swap between un-Shared and Shared profiles using the Label parameter.

Finally, to create the form, select the Profile families (the ones at each end of the Reference Line) and click Create Form.  Unlike other form creation scenarios, you do not want to select the “lines” by Tabbing through – you actually want to select the family itself.  The Label parameter will allow you to swap these families, which will drive the Form.

In the image below, all of these are one Adaptive family – with profiles swapped, and parameters adjusted, including rotation about the axis.


Download the above example here

Credit:  I’m fairly sure I read about this general idea somewhere… it was a while ago.

Not a great position to be in (having point clouds with different coordinate systems and no known common point), but here is some code that may help:
andymiller/FeatureBasedAlignment · GitHub

From GibHub:
The goal is to accurately register two point clouds created from different image spectrums (e.g. visual to infrared), in different coordinate systems of different scales.

Current approach is: 
– Take two point clouds 
 – Estimate normals for each point 
– Find FPFH Features for each point 
– Find likely correspondences between two models (based on FPFH) 
– Use top features to estimate scale, 
 – Run RANSAC to estimate transformation, and eliminate correspondences 
– Use remaining correspondences to run ICP for finer alignment