通过Python节点可以调用RevitAPI的内容,那如何产生新的对象?
一、公开构造函数的类
通过查看RevitAPI可以看到:对于XYZ类给出了公开的API构造函数,如下图所示:
(Tips:类的构造函数名称必须与类名称相同,例如XYZ类的构造函数名称必须为XYZ(),可以作为查找构造函数的依据)
public XYZ(
double x,
double y,
double z
)
对于C#等其他语言来说,调用类的构造函数是需要添加关键字的,在C#中为new,而在Python中调用构造函数则不需要任何关键字,像普通方法一样调用即可;
point=XYZ(0,0,0)
二、未公开构造函数的类
在RevitAPI中还有一些类是没有公开构造函数的,未公开的原因与程序面向对象设计的原则有关(更好的程序架构),例如:FamilyInstance类,那么如何构造新的FamilyInstance?
RevitAPI把大部分工厂类放在了Autodesk.Revit.Creation Namespace命名空间下,如果没有找到合适的构造函数,可以到该命名空间下查找。
该命名空间下的类下含有大量的工厂方法,读者可以自己查找API文档学习。
这里以FamilyInstance类为例说明:该类的产生方法在document类下,有很多中重载方法,下面展示部分方法:
按顺序给出函数参数,大部分情况下系统会自动找到合适的重载方法。
如果要指定特定的构造函数调用,可以参照IronPython官方文档,本文属于入门介绍,不做深入探讨。