I have been developing an application for editing Keynotes within Revit and all is well except when the project has a Keynote file that has a BIM 360:// path via Desktop Connector The application tries to read and load the internal Keynote file with the external reference path, but it doesn't work with Cloud keynote files.
It doesn't matter if the file is a cloud model or not, but when the path is not local, no KeynoteTable is even available when iterating the TransmissionData GetAllExternalFileReferenceIds().
TransmissionData transData = TransmissionData.ReadTransmissionData(ModelPathUtils.ConvertUserVisiblePathToModelPath(Functions.DocPath(doc)));
var extRefs = transData.GetAllExternalFileReferenceIds();
foreach (ElementId refId in extRefs)
{
ExternalFileReference extRef = transData.GetLastSavedReferenceData(refId);
MessageBox.Show(extRef.ToString() + " : " + extRef.ExternalFileReferenceType + " : " + extRef.PathType);
if (extRef.ExternalFileReferenceType == ExternalFileReferenceType.KeynoteTable)
{
App.ControlID.keynoteFilePath = ModelPathUtils.ConvertModelPathToUserVisiblePath(extRef.GetPath());
}
}
If the Keynote file path is local I get three types of ExternalFileReferenceTypes:
Local Keynote File
KeynoteTable
RevitLinks
AssemblyCodeTable
If the Keynote file path is BIM 360 I only get two types of ExternalFileReferenceTypes:
BIM 360 Keynote File
AssemblyCodeTable
RevitLinks
Is there a way to get the KeynoteTable information when it is a Cloud path or is this information not available? I think its odd that it doesn't even "see" a KeynoteTable when using a cloud path, rather than providing a cloud path that could be parsed for relevant / location association.
Any thoughts here?
-- Again, I want to reiterate that this in a LOCAL model, not a Cloud model, just the Keynote file has a cloud path.--
Thanks in advance for any support you can lend.