今天来一段简单的代码,获取Revit设计选项,来说说Dynamo一个比较常用的方法:
FilteredElementCollector Methods
这个方法的很有用,很多图元的获取都要通过这种方式。
我们打开API手册,直接搜索FilteredElementCollector,就能找到所有的方法,这里我们用到的OfClass方法,按类别收集图元。
点进去以后,就能找到基本语法:
我们继续往下翻,能看到举例:
我们要用的方法,也基本一样,然后继续往下翻,到最底部,找到Autodesk.Revit.DB Namespace,点进去,就能看到所有的Classes:
一直往下翻,很容易就能找到我们要用的DesignOption。到这里,我们的基本语法就有了:
FilteredElementCollector(doc).OfClass(DesignOption).ToElements()
然后只需要完善这段代码即可,并且可以获取它的名字。
完整代码如下:
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import *
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
designOp = FilteredElementCollector(doc).OfClass(DesignOption).ToElements()
designOpNames = []
for i in designOp:
designOpNames.append(i.Name.ToString())
OUT = designOp, designOpNames
好了,很简单的一段代码,今天先分享这么多,想要用好API文档,只能多翻、多练,一起练习吧~