各位好,在使用代码创建Alignment对象时发现了一个问题,创建出来的Alignment对象无法访问其Element属性。
我的代码是先创建平面线再创建纵面线:
这个Alignment创建完以后能够在DGN文件中显示:
但是,创建出来的Alignment对象的element属性为空值:
去使用al.Element访问该属性的时候会导致ORD异常崩溃。
但是,如果我使用con.GetActiveGeometricModel().Alignments去遍历这些Alignment的时候,element属性是有值的:
望解答~
试试加上con.StartTransientMode();和con.PersistTransients();
张总,我按照您说的调用了这两句代码,但是好像还是不行:
您476行中引用的complexA(后面内容看不到了)是如何构建的?
请打开ORD SDK中自带的例子ManagedSDKExample去搜索一下,有大量CreateAlignmentXXX的例子可以参照的。
另外,请阅读置顶的发帖指南,我们有专门的插入代码的方法的,不必这样粘贴大量的图片,既占用论坛空间,也不方便阅读。
谢谢!
付老师好,comlexA是一个线形元素,我就是参照你们的案例来写的:
LinearComplex complexAlign = LinearComplex.Create1(lines.ToArray(), false, false, 0.001); ConsensusConnectionEdit con = ConsensusConnectionEdit.GetActive(); con.StartTransientMode(); Alignment al = con.GetActiveGeometricModel().CreateAlignmentByLinearElement(complexAlign, true); // Alignment al = con.GetActiveGeometricModel().CreateAlignmentByLinearElement(lineString, true); con.PersistTransients();
现在的问题主要是我创建的Alignment对象的Element属性一直无法访问,
就算我调用了con.StartTransientMode();和con.PersistTransients();也还是不行。
因为我后续想要在Alignment上面用SDK创建廊道,所以获取不到Element对象的话无法继续。
创建完后再用con.GetActiveGeometricModel().Alignments根据名称获取到Alignment可否?