[MSCE C#]DgnElementSetTool修改标注

问题:使用DgnElementSetTool,选择DimensionElement后,修改标注高度,在OnDynamicFrame中DoRedraw不生效,并没有动态更新,

Parents Reply
  • protected override void OnDynamicFrame(DgnButtonEvent ev)
    {
        if (!GetAnchorPoint(out origin))
            return;
        if (ElementAgenda.GetCount() <= 0)
            return;
        DgnModel dgnModel = Session.Instance.GetActiveDgnModel();
        RedrawElems redrawElems = new RedrawElems();
        redrawElems.SetDynamicsViewsFromActiveViewSet(Session.GetActiveViewport());
        redrawElems.DrawMode = DgnDrawMode.TempDraw;
        redrawElems.DrawPurpose = DrawPurpose.Dynamics;
    
        for (uint i = 0; i < ElementAgenda.GetCount(); i++)
        {
            Element ele = ElementAgenda.GetEntry(i);
            if (ele is DimensionElement)
            {
                DimensionElement dimEle = dgnModel.FindElementById(ele.ElementId) as DimensionElement;
                dimEle.GetHeight(out double oldH);
    
                double newH = endPt.Y - origin.Y;
                dimEle.SetHeight(newH + oldH);
    
                redrawElems.DoRedraw(dimEle);
            }
        }
    }

Children