笔者近期在处理Revit项目升级的时候,出现了一个小问题:
不同Revit版本下椭圆的构造函数处理机制还不一样。具体说明如下:
在Revit2016版本中,Ellipse.Create的静态构造函数可以创建一个椭圆对象。
但是在高版本中,Ellipse.Create创建生成的可不是椭圆对象了,而是它的基类类型Curve。
如果您使用【Ellipse trans = crv_ellipse as Ellipse;】这样的转换的话,很不幸有可能会得到的trans是个空值。
原因:
如果椭圆的长轴和短轴相等的场合下,那么此时trans是个Arc类型。那么Arc类型和Ellipse是兄弟关系,您说它能转换成功吗?(下图是它们的API类型说明)
扩展:
如果开始角度是0和终了角度是360度,那么Ellipse.CreateCurve会生成啥东东呢?
请各位看官自行验证~-~