我想设置图层属性样式中的自定义线型比例因子,请问通过程序如何实现?
研究一下level下的SetByLevelLineStyle方法,其中应该有您需要的这个参数吧?
LevelHandle newLevel = ActiveDgnModel.GetDgnFile().GetLevelCache().GetLevelByName("缺省"); EditLevelHandle editLevelHandle = newLevel.GetEditHandle(); LevelDefinitionLineStyle levelDefinitionLineStyle = newLevel.GetByLevelLineStyle(); levelDefinitionLineStyle.GetStyleParams().Scale = 0.002; //设置图层线形 editLevelHandle.SetByLevelLineStyle(new LevelDefinitionLineStyle(7, null, ActiveDgnFile)); ActiveDgnModel.GetDgnFile().GetLevelCache().Write();
您指的是LineStyleParams吧,但是我一直拿不到
是的,我按照郭老师说的方法实例下,也是取不出来LineStyleParams的,麻烦您了
请使用这篇wiki中Addin程序集接口扩充提供的CreateLineStyleParameters函数创建。
好的,我试一下
借助于郭老师封装的这个DLL,我写了如下测试代码,可以工作。分了两种情况:原Level中设置过Style参数的和没有设置过。对于设置过的,我们需要继承原有的属性。
private static void SetByLevelStyleScale() { DgnFile dgnFile = Session.Instance.GetActiveDgnFile(); FileLevelCache lvlCache = dgnFile.GetLevelCache(); EditLevelHandle myLevel = lvlCache.GetLevelByName("Default").GetEditHandle(); if (null == myLevel) { MessageCenter.Instance.ShowInfoMessage("Can't find Default level", null, true); return; } LevelDefinitionLineStyle oldLdls = myLevel.GetByLevelLineStyle(); if (oldLdls.HasStyleParams) { LineStyleParameters styleParams = oldLdls.GetStyleParams(); styleParams.Modifiers |= LineStyleModifierFlags.Scale; styleParams.Scale = 2.0; LevelDefinitionLineStyle ldls = new LevelDefinitionLineStyle(oldLdls.Style, styleParams, dgnFile); myLevel.SetByLevelLineStyle(ldls); } else { LineStyleParameters styleParams = MstnMixedAssistant.AssistantFunctions.CreateLineStyleParameters(); styleParams.Modifiers = LineStyleModifierFlags.Scale; styleParams.Scale = 2.0; LevelDefinitionLineStyle ldls = new LevelDefinitionLineStyle(0, styleParams, dgnFile); myLevel.SetByLevelLineStyle(ldls); } lvlCache.Write(); }
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
Answer Verified By: ss s
好的