Revit二次开发-不同Revit版本下椭圆的处理

笔者近期在处理Revit项目升级的时候,出现了一个小问题:

不同Revit版本下椭圆的构造函数处理机制还不一样。具体说明如下:

Revit二次开发-不同Revit版本下椭圆的处理_第1张图片

 

 

在Revit2016版本中,Ellipse.Create的静态构造函数可以创建一个椭圆对象。

 

但是在高版本中,Ellipse.Create创建生成的可不是椭圆对象了,而是它的基类类型Curve

 

如果您使用【Ellipse trans = crv_ellipse as Ellipse;】这样的转换的话,很不幸有可能会得到的trans是个空值。

原因:

如果椭圆的长轴和短轴相等的场合下,那么此时trans是个Arc类型。那么Arc类型和Ellipse是兄弟关系,您说它能转换成功吗?(下图是它们的API类型说明)

Revit二次开发-不同Revit版本下椭圆的处理_第2张图片

 

 

Revit二次开发-不同Revit版本下椭圆的处理_第3张图片

扩展:

如果开始角度是0和终了角度是360度,那么Ellipse.CreateCurve会生成啥东东呢?

请各位看官自行验证~-~

你可能感兴趣的:(Revit二次开发,椭圆)