在ORD10.10.00.16版本中,我掌握的创建路线是需要采用类似下面的方法:
GeometricModel geometricModel = ConEdit.GetActiveGeometricModel(); Alignment = geometricModel.CreateAlignmentByLinearElement(linearComplex, true);
但是使用中遇到一个问题,就是如果这个文件是刚刚新建的,没有进行过任何绘制操作的,通过上面的第一行代码获取的GeometricModel对象就为null,则无法创建路线,请问这个问题该如何解决?
请参考下面方法:
DPoint3d point1 = new DPoint3d(0, 0, 0); DPoint3d point2 = new DPoint3d(1000, 0, 0); Line startLine = Line.Create1(point1, point2); LinearComplex complex = LinearComplex.Create1(new LinearElement[] { startLine }, false, false, 0); ConsensusConnectionEdit mConsensusConnectionEdit = ConsensusConnectionEdit.GetActive(); mConsensusConnectionEdit.StartTransientMode(); AlignmentEdit mAlignmentEdit = AlignmentEdit.CreateByLinearElement(mConsensusConnectionEdit, complex, true); mAlignmentEdit.SetFeatureDefinition(@"Alignment\Geom_Baseline"); mConsensusConnectionEdit.PersistTransients();
您提供的方法时ORD9及以下版本创建路线的方式啊,现在ORD10中,无法通过AlignmentEdit的方式创建路线了,因为这个类的访问修饰符已经变为私有的了,提示如下错误。
我刚更新了,确实geometricMode是空的,我推测是因为再界面上生成一个cif对象,内部会创建geometricModel,目前公开接口确实没有,我会记录后再后期优化。
那现阶段暂时只能是提示用户手动画一根路线吗?
只能这样了。