Dear @plaiknst,
Thank you for your patience and your timely prompt.
Yes, there is some news.
Now that I present it here, I see that I have to follow up internally with the development team on this as well.
Here is what they say on the issue REVIT-86488 [Make core centerline a reference]:
I believe we can also dimension to and align to core centerlines.
There is indeed a difference in behaviour between UI and API in the case of core centerlines and core faces. These are not real references, they are artificially injected in the UI in the dimension, align and pick line editors. This is why they are unavailable in the API via the generic reference mechanisms.
The best solution for the UI and API would be to make these real reference and this is what this issue was about. However, we ran into some extra problems when we did that. So we ended up implementing a partial solution for Pick Line, which mimics the already present partial solutions in Align and Dimension editors.
The full solution of making the core centerline/faces references can still be implemented, though. I would say for bookkeeping purposes, it would be better to create another issue for that. However, I am not sure that solution would be portable to R2017, though, we need to implement it in R2018 first and see what is the scope of the changes and whether it is acceptable to make them in R2017.
On your other questions:
>>Two of the faces have a null reference. These appear to be the faces of the core centerline. Any idea how to get these references or is this a bug in the API?
Do you mean these are the core exterior faces? Or the core centerline face? I would expect core centerline to only have a single face.
>> What's the best way to differentiate the core centerline face & the wall centerline face? Some geometric analysis of faces & distances between origins is possible, but what about when these two faces are coincident? It still matters which is which because the wall structure can be modified so the core centerline moves off the wall centerline.
>> Would you agree that ideally there would be the following new methods added to HostObjectUtils? GetCoreFaces(), GetCoreCenterline(), GetCenterline()
In the Revit internals, these are distinguished by geometry tags. Not sure if that is possible in the API.
I think your suggestion about specific methods to get those references is reasonable, but let's first see if there is another established way to do that.
We ported this to 2017 SP2 and 2017 R2. However, as said, these are only available in the UI.
I'll follow up with them on the progress to date and see what we can do to get as much functionality as possible available through the API as well.
Keep prompting, please 🙂
Thank you!
Cheers,
Jeremy