视图中的线段是用智能线画的,我想知道通过Alignment如何获取它
Alignment al = Alignment.CreateFromElement(con, ele); if (al != null) { if (al.Profiles != null && al.Profiles.Count() > 0) { foreach (Profile profile in al.Profiles) { ProfileElement profileline = profile.ProfileGeometry; ProfileComplex profilecomplex = profileline as ProfileComplex; } } }
或者得到ProfileElement profileline = profile.ProfileGeometry后 调用
var curve = profileline.GetCurveVector();
ComplexStringElement eleHeader = new ComplexStringElement(dgnmodel, null);
eleHeader.SetCurveVector(curve);
这个线是用Drawing中的画线工具画的,最开始我也是用你说的这个方式去遍历获取,但是并没有获取到
刚把遍历的数据输出了,发现还是没有
如果是ms的元素,那么可以用ms的方式获取,遍历模型中的元素,判断元素类型,获取需要的元素:
var curveVector = Bentley.DgnPlatformNET.Elements.CurvePathQuery.ElementToCurveVector(element);
感谢老师回复,遍历需要打开纵断面视口,我想不打开视口的状态下得到这个线,目前好像没有好的办法了
您可以看看profile的模型名称是啥,可以遍历dgn文件,获取模型,根据模型名称判断是否是profile模型。