环境:CE
语言:C#
通过以下代码创建动态视图,生成绘图模型,参考动态视图,再次打开,修改Default模型的显示样式,发现绘图模型也变了,而且自动把参考捕捉和选择关闭了,请问这种情况能否通过代码固定一下?
ViewGroupCollection viewcoll = dgnFile.GetViewGroups();//获得当前视图组集合 ViewGroup viewgroup = viewcoll.GetActive();//获得当前激活的视图组 viewgroup.FindFirstOpenView(out int viewnumber);//获得第一个打开的视图 ViewInformation viewInfo = viewgroup.GetViewInformation(viewnumber);//获得指定视图编号的视图信息 NamedView view = new NamedView(dgnFile, dwgName);//声明NamedView view.SetClipElement(clipEle);//设置剪切元素 view.SetViewInfo(viewInfo);//设置视图信息 view.WriteToFile();//将视图写入文件 DgnModel drawingModel = dgnFile.CreateNewModel(out DgnModelStatus error, dwgName, DgnModelType.Drawing, false, null);//在指定文件中创建新模型 DgnAttachment refToCreate = drawingModel.CreateDgnAttachment(dgnFile.GetDocument().GetMoniker(), dwgName);//创建模型参照 refToCreate.ApplyNamedView(view.Name, 1, 1, new ApplyViewClipOptions(), true, StandardView.Top);//对模型参照添加NamedView refToCreate.WriteToModel(true);//将模型参照写入模型 refToCreate.NestDepth = 99;//设置深度 refToCreate.SetLocateLock(true);//锁定定位 refToCreate.SetSnapLock(true);//锁定捕捉
试试修改完之后调一下DgnAttachment的Rewrite,保存一下修改内容。
谢谢郭老师,样式改变应该是我把ClipElement给删除了,但是参考无法选择和捕捉很奇怪,我尝试一下Rewrite
您的refToCreate.WriteToModel(true);是否应该位于最后一行呀?否则后面的一系列Set函数的调用效果是不能被保存的。
Answer Verified By: Liaoyuan Zhang
谢谢符老师,这里确实有点问题