在MS自身的参考文件对话框中存在一个Merge Into Master(合并到主模型)的功能,许多用户都在问如何编程实现这个功能。下面代码就以C# 为例写就。代码中带有充分的注释,供大家参考。
public static void CopyRefContentsToActive() { DgnModel activeModel = Session.Instance.GetActiveDgnModel(); //获取当前模型 foreach (DgnAttachment attach in activeModel.GetDgnAttachments()) //遍历当前模型中所有的参考模型 { attach.GetTransformToParent(out DTransform3d trans, true); //获取参考到主模型的变换 TransformInfo transInfo = new TransformInfo(trans); using (ElementCopyContext copier = new ElementCopyContext(activeModel)) //启用元素复制机制 { copier.WriteElements = false; //不让copier将复制过来的元素写入目标模型中,默认是自动写入的 foreach (Element elemInRef in attach.GetDgnModel().GetGraphicElements()) // 遍历参考模型中的每个图形元素 { Element copiedElem = copier.DoCopy(elemInRef); //将参考模型中的图形元素复制到当前模型中 copiedElem.ApplyTransform(transInfo); //对元素执行到主模型的变换 copiedElem.AddToModel(); //将变换后的元素添加到模型中 } } } }