You are correct and it looks like you can add Topology items via the Pro UI | Add Data from Path:
and here is the result (using the sample dataset from the community samples):
However, when i try to perform the same operation through the API, the LayerFactory fails as you described:
await QueuedTask.Run(() =>
{
var path = @"C:\Data\Topology\GrandTeton.gdb\BackCountry\Backcountry_Topology";
Uri uri = new Uri(path);
// fails:
LayerFactory.Instance.CreateLayer(uri, MapView.Active.Map);
});
I tried different methods and also tested this under 2.9 to no avail. The only workaround i was able to find was adding the whole feature dataset instead of the Topology. This works:
await QueuedTask.Run(() =>
{
var path = @"C:\Data\Topology\GrandTeton.gdb\BackCountry";
var uri = new Uri(path);
LayerFactory.Instance.CreateLayer(uri, MapView.Active.Map);
});
but needless to say, it will add all layers of that feature dataset to the map. Consequently, all unwanted (or duplicated) layers have to be removed from the map's table of content.
Thanks for finding this, i will report it as a bug.