ラベル Revit の投稿を表示しています。 すべての投稿を表示
ラベル Revit の投稿を表示しています。 すべての投稿を表示

2018年1月6日

Revit : ファミリテンプレートの選択

ファミリを作るとき、大事なのがファミリテンプレートの選択です。
Revitのテンプレートは、ファミリの振る舞いを決めるとても重要なものです。
ここで注意しなければいけないのが、後から簡単に変えられないということです。
先日、このことでちょっと失敗したので、書いておきます。


ホスト

例えば壁基準のテンプレートを使えば、壁に吸い付き、壁の上を移動しながら位置決め出来るファミリが出来ます。
これを、壁を"ホスト"とするファミリといいます。
これはホストである壁が無いと配置できません。

天井基準の テンプレートから作ったファミリは、天井をホストとし、天井にだけ配置出来ます。
床基準のテンプレートから作ったファミリは、床をホストとし、床の上にだけ配置出来ます。
そして、ホストを持たないタイプのテンプレートを使えば、どこにでも配置出来る代わりに、面の上を動かして位置決めするなどといった、スマートな振る舞いが出来ません。


置換

プロジェクト上でファミリを置き換えたい時、プロパティのプルダウンメニューから置換先のファミリを選択する方法があります。
置換先のファミリがそのプロジェクトにすでに読み込まれてさえいれば、一番簡単で早い方法だと思います。

でもこの方法で置換出来ない場合があります。
それは、ホストの違うテンプレートで作られたファミリ同士の置換です。
また、ホストが同じでも、カテゴリが違う場合の置換もできません。

たとえば、家具を作るときはどのテンプレートを選択すべきか?
テーブルや椅子なら、大抵、床に置かれるわけだから、床基準でよくないか?とも思いますが、設計上は、さまざまなシチュエーションが考えられます。
床に置かない場合だってありえます。棚に椅子を飾って展示するインテリアショップだってあります。
ステップフロアーだったりすると、床基準のほうが配置しやすいかもしれません。( ※ステップフロアーを"床"で作った場合)

Revitの使い方次第なのですが、置換を多用するようなら、ファミリテンプレートを統一しておかないといけません。


テンプレートを変更したい場合

じゃあ、間違えてしまったので、後から変更したいという場合、どうしたらよいのか?
最初に書いたように、後からは簡単に修正できません。
カテゴリは修正できますが、ホストは変えられません。
プロパティで簡単に変更出来たらいいのですが、今のところそれは出来ません。

検索してみると、ジオメトリだけでも変換してしまおうとする例が見つかりましたが、ファミリパラメータは保持されないし、工程もちょっと面倒。基本的に変換はできないと思ったほうがいいです。

Revit APIを使えば、面基準のファミリに変換することはできるかもしれません。ただ、それだけです。今のところ、その他の変換はできません。

結局、

手動でコピペするのが一番早いようです。
たとえば、床基準のファミリを、ホスト無しの一般テンプレートにしたい場合は、
モデルを新規に作ったファミリファイルにコピペ、位置修正した後、パラメーターの修正、関連付けなどを手動でやる必要があります。




2017年10月16日

Revit Macro : Purge ImportInstances

やっと出来ました。
分かってしまえば簡単なんですが、そこまでが大変。

ファミリをモデリングする時に取り込んだCADを一括削除するマクロです。






2017年10月2日

Revit Macro : マクロで最初に生成したオブジェクトを消すと、次からエラー

ヘルプのサンプルコードをコピペして柱状体を作ってみました。

最初は成功します。
ただし、一番最初に作ったオブジェクトを削除してしまうと、次からエラーになります。
2番目、3番目に作ったオブジェクトは削除しても大丈夫ですが、最初に作ったものはデリートしたらダメです。
なぜそうなるのか不明なんですが、どなたかわかる方いませんか?...。


2017年5月12日

Revit API : 独習


Revitでもマクロが書けるようになりたいなぁと前から思っていたのですがようやく一歩踏み出せました。

未知の世界

なんせ全く知らない世界なので取っ掛かりがわからなかったのです。
とりあえず、マクロIDEを起動してサンプルをコピペしてみてもエラーで動かない...。?
うーむ、わからない。
動かない...。

といったことを繰り返していたのですが、どうもRevitではコードの実行スタイルによって若干作法が異なるということがわかりました。
さらにRevitの進化と共にAPIも更新されてきているので、参照したコードが"すでに古い"なんてこともあります。
だから単純にコピペしても動かない場合が多いのです。
まあ、APIドキュメントをちゃんと読めばわかることなのですが、はじめからそんなもの読むなんて面倒ですからね...。


開発言語

RevitではC#、VB.NET、Ruby、Pythonといった言語が使えますが、
今のところ、C#以外はサンプルがほとんど無いので非常に勉強しにくいです。
自分のように独習するなら始めはC#から入ったほうが良さそうです。


C#

C#は初めてなのですが、基本的な書式はC言語風で自分には馴染みのあるものです。
またVBに似た関数もたくさんあり、ExecelVBAなどを書いたことがある人にも親しみやすいと思います。
C#もまた進化を繰り返してきた言語で色々高度なことができる代わりに、自分のような"非職業プログラマー"には結構難しく感じます。
もっとも、わからない機能は使わないのであんまり関係ないですが...。


初めてのマクロ

やはり勉強は実用的なものを題材にしたほうが捗ります。
今回は、ファミリを作る時に、一括で平面図・正面図・側面図のCADを取り込んで適切なビューに配置するマクロを作りました。
社内の命名規則に沿ったファイル名さえついていれば、ワンクリックでCAD図配置完了です。