老师你好, 请问ORD Bentley.CifNET.LinearGeometry.LinearComplex 的子对象GetSubLinearElements() ,如何能获取子对象LinearElement[i]的对象类型Bentley.CifNET.LinearGeometry.GeometricType.
1,LinearElement le1 = al.LinearGeometry; Bentley.CifNET.LinearGeometry.LinearComplex lcompx1 = le1 as Bentley.CifNET.LinearGeometry.LinearComplex; LinearElement[] larray = lcompx1.GetSubLinearElements(); foreach (LinearElement item in larray) {
//if (Bentley.CifNET.LinearGeometry.GeometricType.LinearLine == item.) {... }
else //if (Bentley.CifNET.LinearGeometry.GeometricType.LinearSpriral == item.) {... }
//else{...} Bentley.CifNET.LinearGeometry.Line eleline1 = item as Bentley.CifNET.LinearGeometry.Line; }
我想通过判断对象类型,来转换成具体的对象,可找不到LinearElement获取对象类型的api,请问如何获取子对象类型?
2,另外GeometricType 对象里没有圆弧类型 , LinearSpriral = 2,LinearClothoid = 3,这两个哪个是缓和曲线类型。
关于你的第一个问题:
一般有两种方法
1.采用C#语言 is 语句判断
2.通过LinearElement 里的 public CurveVector GetCurveVector(); 然后通过其CurvePrimitiveType类型判断
关于你第二个问题:
1.圆弧:我看到的类库里是有圆弧的定义的,如下所示:
2.缓和曲线: LinearSpriral = 2,LinearClothoid = 3,这两个都是缓和曲线只是公路上用回旋线作为缓和曲线,LinearClothoid表示回旋线。
补充:
在ORD的SDK里虽然几何库LinearGeometry 中把各类型的线成为LinearElement 但是这里要注意这个element的含义与MS的element不一样,两者没有直接的关系。