Revit Python Shell その2

インストールまではできたと思いますので、RevitAPIにアクセスしてみましょう。

はじめは何もわからないと思いますが、まずはRevitPythonShellにコマンドを入力することになれていきます。

キャプチャ

>>>

につづけてコマンドを入力していくことは学びましたね、

import clr
clr.AddReference('RevitAPI')

RevitAPIにアクセスするためのおまじないと思ってください。なにもエラーが発生していなければ、コマンドを入力すると次の行に新しい

>>>が出てきます。

入力内容にミスがあるとエラーが表示されるようになっています。

キャプチャ3

上の二文はパソコンが素直にコードを受け入れてくれています。

crr.の文では存在しないコード名を入力したのでエラーが出ています。

内容を確認してみると、NameErrorすなわち名前が検索でみつかりませんでした。というエラーです。始めたばかりの頃はよく見るエラーだと思います。

続けて以下のコードを入力します。まだ呪文が続いています。

from Autodesk.Revit.DB import *
doc=__revit__.ActiveUIDocument.Document
collector = FilteredElementCollector(doc)

簡単に内容を説明してみます。あまり深く考えなくて大丈夫です。

from Autodesk.Revit.DB import *

Autodesk.Revit.DB というライブラリに存在するコードをすべて読み込みます。

doc=__revit__.ActiveUIDocument.Document

現在開いているRevitのDocumentを指定しています。Documentとは、Revitのデータそのものだと思っていただいて大丈夫だと思います。

collector = FilteredElementCollector(doc)

FilteredElementCollectorというコマンドを使用して現在のRevitデータからエレメント(部材)を収集します。コマンドの探し方等は今後紹介します。簡易的なもので良ければ、RevitPythonShell内でも英語が読めれば対応できるかもしれません。以下のような感じですね。

無題4


collector.OfCategory(BuiltInCategory.OST_Grids)
collector.ToElements()

collectorで取得した中から、カテゴリで内容を絞ります。

BuiltInCategoryはその名の通り、Revitで指定されているカテゴリ名です。

最後に収集したものの中身をElementとして取り出しています。結果としてElementのListが取得できています。

キャプチャ5

RevitAPIにアクセスしてElementを収集することができました。ちなみにDynamoでこれを表現すると以下のようになります。

キャプチャ6


この記事が気に入ったらサポートをしてみませんか?