老师好,我有两个问题
1.请问如何更改参考的路径,而不是直接全部重新载入
2.请问如何保存视角位置,我想通过将一个视角位置的参数值上传至后端,然后用户从后端获取视角的位置信息可以直接切换至相应的视角
更改参考路径您试一下DgnAttachment下的SetAttachMoniker函数。视图位置的话,通过Session.GetActiveViewport().GetViewInformation()返回的实例可以获取到,包括旋转矩阵。
老师您好,我测试了SetAttachMoniker这个函数,虽然参考路径更改了,但是模型仍然没有更新,显示的模型仍然是原来的模型;
public static void SetAttachPath(string unparsed) { DgnModel dgnModel = Session.Instance.GetActiveDgnModel();//获得当前激活的模型空间 DgnAttachmentCollection attachcol = dgnModel.GetDgnAttachments();
foreach (var item in attachcol) { DgnFile dgnFile = item.GetDgnFile(); if (item.AttachFileName == "测试文件1.dgn") {
//我不知道这样创建DgnDocumentMoniker是否正确 DgnDocumentMoniker dgnDocumentMoniker = DgnDocumentMoniker.CreateFromFileName("测试文件2.dgn", @"C:\Users\C\Desktop\"); item.SetAttachMoniker(dgnDocumentMoniker); Session.Instance.Keyin("REFERENCE RELOAD ALL"); } } }
运行代码后参考路劲已经更改但是显示的模型仍然是"测试文件1.dgn"
似乎不太行,还是考虑调用DgnModelRef下的CreateDgnAttachment重新创建一个参考吧。
老师您好,我获取了ViewInformation,怎么才能让当前的视图跳转到之前获取的ViewInformation呢
试试如下两行代码:
Session.GetActiveViewport().GetViewInformation().SetGeometryInformation(viewInfoLast.GetGeometryInformation()); Session.GetActiveViewport().SynchWithViewInformation(true, true);
老师您好,我不知道是不是我代码的问题,似乎没有效果
private static ViewInformation viewInformation; public static void GetView(string unparsed) { viewInformation= Session.GetActiveViewport().GetViewInformation(); } public static void SetView(string unparsed) { Session.GetActiveViewport().GetViewInformation().SetGeometryInformation(viewInformation.GetGeometryInformation()); Session.GetActiveViewport().SynchWithViewInformation(true, true);
但是我从保存的视图中获取的viewInformation可以达到这个效果 }