我在给形状设置图案填充时,先进行形状得图案填充之后,又将元素模板赋给了形状发现形状会被多复制出来一份这是什么原因?
ApplyElementTemplate函数里边是怎么实现的?
在替换实体时会异常中断
看不出有什么问题,可能是您其他地方写的有问题,您可以写一个单独的函数去测试一下看看,在这个函数里边不要引用其他变量或者调用其他函数,如果能复现问题的话,可将这个函数提供给我们。另外上传代码时,请使用下图所示的菜单项上传,如果只给一个截图的话,我们这边测试还得重新输入,谢谢您的理解于配合。
// 测试设置元素模板 private void TestElementTemplate() { var elements = ActiveDgnModel .GetGraphicElements<DisplayableElement>(d => d.IsValid && !d.IsInvisible && !d.IsDeleted).ToList(); if (elements.Count > 0) { Element ele = elements[0]; var template = ElementTemplateMgr.FindTemplateByPath("图案填充\\PNTLT"); bool bRet = ElementTemplateMgr.ApplyTemplateDefaultsToElement(ref ele, template, true); ele.ReplaceInModel(); // 会弹出异常 } }
代码和测试文件上传了,在重新替换模型时会提示Status方面得错误
Bad StatusInt: 32768
ElementTemplateMgr.ApplyTemplateDefaultsToElement函数有点问题,对于在dgn文件中已经存在的元素,调用此函数时,会将修改后的元素直接添加到dgn文件中,c/c++的接口倒是正常。