2015-02-17 2 views
0

Я пытаюсь открыть mxd в надстройке ESRI ArcMap с помощью vb.net. Пользователь начинает с пустого mxd и запускает инструмент для открытия mxd, который хранится в файле. Mxd, который открывается кодом, имеет некоторые функциональные слои и некоторую графику в макете.открыть mxd в arcobjects vb.net add in

До сих пор у меня есть:

Dim mapdoc As IMapDocument = New MapDocumentClass() 
mapdoc.Open("D:\__Test\LockItInPMAV.mxd") 

Документ открывается, потому что я могу получить его имя файла с помощью:

MsgBox("Filename: " & mapdoc.DocumentFilename) 

Однако представление данных и просмотр макета остаются пустыми, они не показывают содержание открытого файла.

Как я могу открыть открытый файл в текущем сеансе ArcMap?

Thanks, Luke.

+0

Благодаря ЭСРИ Я использую правильный код прямо сейчас: My.ArcMap.Application.OpenDocument («D: \ __ Test \ LockItInPMAV.mxd») Однако остальная часть моего кода (добавление слоев к оглавлению) проходит до открытия документа. Mxd не открывается, пока мое добавление закрывается. Есть идеи? – Luke

+0

2 недели спустя и ответов нет, и я до сих пор не решил эту проблему :( – Luke

ответ

0

Я работаю на C#. Я не уверен, что вы можете загрузить mxd после его загрузки. Вы бы необходимо либо загрузить новый экземпляр ArcMap и передать имя МКД в качестве параметра:

var expanPath = Environment.GetEnvironmentVariable(Properties.Settings.Default.arcmapLaunchPath, 
EnvironmentVariableTarget.Machine); 

string Cmd = string.Format(@"{0}\arcmap.exe", expanPath); 
ProcessStartInfo startInfo = new ProcessStartInfo(Cmd); 
startInfo.Arguments = Properties.Settings.Default.MxDPath; 

Process.Start(startInfo);   
Process.GetCurrentProcess().Kill(); 

МКД имеет так много деталей о том, как экземпляр ArcMap работает, что это не просто перезагрузить его. Наш эсри-подрядчик подтвердил это.

Мне сказали, что Pro, полностью изменил это.