Dear Jon,
Thank you very much for your detailed description and helpful video, and thanks to Fair59 for his very helpful suggestion.
You should benchmark the suggestion before discarding it as 'lengthy processing time for my task which I cannot afford'. That may not be the case at all!
Anyway, your video is really very cool and helpful to explain a tricky situation and hint at several possible solutions.
Here are my notes from the video, for thinking purposes:
- new project
- several sketch planes exist, all associated with level 1
- add reference plane to project --> no new sketch plane created yet
- load a face based family
- place an instance of it on the ref plane --> new sketch plane is created
- instance host is ref plane
- delete ref plane
- host is null
- work plane is now 'not associated'
- sketch plane still exists, now renamed to 'not associated'
- moving family instance is still restricted to the sketch plane
- disjoin allows moving it off the sketch plane and a new sketch plane is created
Possible solutions you suggest:
- disjoin -- is it accessible via api?
- move is also possible if the sketch plane and the instance are both selected and moved simultaneously
For that, you wish to access the sketch plane via API.
I believe there is a wish list item for that functionality in the Revit Idea Station. Please search and vote for it!
Even without that API, here is an approach that may possibly be more direct than the one suggested by Fair59:
Use an undocumented ElementId relationship, if there is one:
https://thebuildingcoder.typepad.com/blog/2011/11/undocumented-elementid-relationships.html
The mysterious sketch plane was created by placing the instance on the ref plane.
Quite possibly, the sketch plane element id is the same as the family instance element id, plus or minus one or two or so.
If that is true and reliable in all the situations you encounter, then you could easily select the proper sketch plane for any family instance that you need to move.
That would enable you to move the sketch plane and the instance simultaneously, as per your second suggestion in the video.
I hope this helps.
Best regards and good luck!
Jeremy