5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PyRevit + Python Revit Wrapper で覚えておいたほうがよい書き方①

Last updated at Posted at 2019-09-17

Revit API でFamilyのTypeの情報を取りたいときは、FamilySymbolのクラスを使うことになります。

そこでは、少しPython特有の書き方が必要になります。
何度かハマって忘れてを繰り返しているので忘備録として残しておくことにします。

まず、Furnitureのカテゴリーのタイプだけをとります。ここでis_not_type=Trueにすると逆にインスタンスだけがとれます。

collector_sample.py
from rpw import db
symbols = db.Collector(of_category="OST_Furniture", is_type=True)

この集めたコレクターのFamilyName、FamilyTypeName,Parameter(value), Parameter(string)の取り方を紹介します。

collector_sample.py
from rpw import db
symbols = db.Collector(of_category="OST_Furniture", is_type=True)

for symbol in symbols:
    famName = symbol.FamilyName
    typeName = Element.Name.GetValue(symbol)
    parameter_value = Element.GetParameters(symbol, "Height")[0].AsValueString()
    parameter = Element.GetParameters(symbol, "Manufacturer")[0].AsString()

FamilyNameはシンプルにとれますが、タイプ名は、Element.Name.GetValue(symbol)という特殊な方法で取ります。同様にParameterの値もとれるのですが注意しないといけないのが、StringとValueを区別しているため、パラメータによって最後のAs~を変えないといけないところです。

またインスタンスを選択して、情報を得る場合の例も載せておきます。
まず、revit.pick_rectangle()でインスタンスを取得した後にその選択したIdrevit.get_selection()にappendします。こうすることで、selection_rpw = ui.Selection() が使用できるようになります。

selection_sample.py
from rpw import ui
from pyrevit import revit
selection = revit.get_selection()
selection_list = revit.pick_rectangle()

for sel in selection_list:
    sel_id = sel.Id
    selection.append(sel_id)

if(selection_list):
    selection_rpw = ui.Selection()

for sel in selection_rpw:
    symbol = sel .get_symbol()
    family = sel .get_family()
    params = symbol.parameters.all
    param = symbol.parameters["SeatCount"].value
    print(symbol)
    print(family)
    print(param)
    print(params)

Revit Python Wrapperで取得したエレメントは、簡単にシンボルやファミリ、パラメータ情報を取得できます。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?