Revitのフリーズの処方箋

「名前を付けて保存」をするとフリーズする

最近Revitが頻繁にフリーズするようになってしまい困っていた。最初はRevit側の問題を疑い、Revitのアドインを無効にしたり色々試したのだが、うまくいかない。フリーズを誘発する操作は、ファミリなどを新規作成したときに「名前をつけて保存」でファイル名を変更することで、入力しようとするとそのまま固まってしまう<図01>。とりあえず対処療法として、「名前をつけて保存」で名称を変更しないように、新規作成でも保存するときは「プロジェクト1」とか「ファミリ1」の初期名称のまま一度保存をかけ、その後にファイル名をエクスプローラーで変更すれば回避できるのだが、もちろん面倒でしょうがない。また、それをつい忘れ、何度とタスクマネージャーから強制終了したことか。。まるで「蟻地獄」である。


<図01>「名前をつけて保存」するとフリーズ

調べてみると、RevitだけではなくてWindows10の更新で、他のソフトでもフリーズする問題が報告されていた。Revitではなく、Illustratorのフリーズの解決法として紹介されていた方法を試してみると、これが筆者のRevitにもピタリとはまり、フリーズが治まったので皆さんにシェアする。

Microsoft IME

Windows10を更新すると日本語の入力モードがデフォルトの新しバージョンに設定される。Mixrosoft IMEの設定を、以前のバージョンに戻す。IMEの設定画面は路地の奥の奥の奥に隠れているので、道案内。

時刻と言語


<図02>時刻と言語

言語


<図03>時刻と言語/言語

日本語


<図04>時刻と言語/言語/日本語

日本語 / オプション


<図05>時刻と言語/言語/日本語/オプション

キーボード/ Microsoft IME

ここまで入ってやっとIMEが現れる。

<図06>時刻と言語/言語/日本語/オプション/キーボード/Microsoft IME

Microsoft IME / 全般

あともう少し<図07>。

<図07>時刻と言語/言語/日本語/オプション/キーボード/Microsoft IME/全般

以前のバージョンのMicrosoft IMEを使う


<図08>時刻と言語/言語/日本語/オプション/キーボード/Microsoft IME/全般/互換性/以前のバージョンのMicrosoft IMEを使う/オフ

もちろんデフォルトでは最新バージョンのIMEが動いている、すなわち「オフ」の状態なので、「オン」にする。

<図09>時刻と言語/言語/日本語/オプション/キーボード/Microsoft IME/全般/互換性/以前のバージョンのMicrosoft IMEを使う/オン

ようやく設定完了。これで筆者のRevitの「名前をつけて保存でフリーズ問題」は不思議なほどきれいに解決したのである。念のため、この設定でIMEを最新バージョンに戻すと、「フリーズ地獄」の状態に戻るのを確認する。少なくとも筆者のPC(事務所とノートの2台)ではこの日本語入力の設定が原因の可能性が高い。

Illustratorにしても、Revitにしても、もともと英語環境のソフトって日本語入力との相性が良くないのか?? Revitだけではなく、ソフトが突然フリーズを始めてお困りの人はお試しあれ。

筆者の現在のWindows10のバージョンは、バージョン2004(OSビルド 19041.928)です。

HN 210511

変幻自在(?)に階段の手摺をデザインする, Revitのアダプティブコンポーネント

悩ましい階段の手摺

Revitのモデリングで厄介なのは手摺である。とくに階段の手摺、さらに手摺子がガラスパネルなどになったりするとより悩ましい。まず下の階段の手摺の例でその「悩ましさ」を見てみよう。これは一般的な横桟の手摺(建築テンプレートの「900mm パイプ」)である<図01>。この横桟をブラケット付きのガラスパネルに交換する。


<図01>横桟の手摺「900mm パイプ」

ガラスパネルの手摺子はRevitのライブラリーにインストールされている。アメリカ人のRevit用語は不思議な日本語なので見つけるのが大変である。このファミリ「手摺子パネル – ブラケット付ガラス.rfa」をプロジェクトにロードしておく。

C:/ProgramData/Autodesk/RVT 20xx/Libraries/Japan/手摺横桟/手摺子/手摺子パネル – ブラケット付ガラス.rfa

つぎにパネルを割り付ける。横桟手摺(「900mm パイプ」)を複製し、「ガラスパネルブラケット付」などと名前を変える。次にちょっとややこしい手摺子の設定<図02>。


<図02>「手摺子構成」設定画面

「主パターン」設定の「手摺子ファミリ」を「手摺子パネル -ブラケット付ガラス:600±25mm」、「手摺子– 丸型:20mm」、「直前部材からの距離」をそれぞれ「310」にする。600はパネル幅。パネルも幅のある手摺子(Baluster)という考え方である。配置間隔はパネル幅が600なのでその半分の300。手摺子の径が20Φなのでスパンは半径分を足して「310」とする。「直前部材からの距離」がスパンの半分となることは、図示すると理解できる<図03a>。

<図03a>直前部材からの距離

始端と終端とコーナーの手摺子は「手摺子– 丸型:20mm」に変えておく。手摺横桟は「手摺横桟構成」の設定画面ですべて削除する。手摺横桟を全て削除しても一番上の手摺(笠木)は残る。手摺(Handrail)は一番上の手掛け部分(Top Rail)のことで「笠木」と訳されている。少々分かり難いので<図03b>でRevitの手摺の構成要素と用語を整理しておく。

<図03b>Revit手摺の構成要素と用語

この設定で、アウトプットは<図04>のようになる。端部にパネルが割り付けられずにギャップができている。横桟の場合は手摺子まで自動的に延長されるが、600の決まった幅パネルなので余りの部分は割り当てられない。


<図04>端部にギャップができる

とりあえずこのギャップを埋めるにはもう一度「手摺子構成」の「位置合わせ」で「フィットするように拡げる」にする<図05>。


<図05>「手摺子構成」「位置合わせ」「フィットするように拡げる」

これで一応ギャップは埋められるのだが、よく見るとブラケットが重なったりしており破綻している<図06>。残念ながらパネル幅は自由に追従しない。


<図06>割り付けがうまくいかない

この方法でガラスパネルをきれいに割り付けるためには、スパンごとにタイプを作成する必要がある。階段部分だけでなく踊り場部分など様々なコンディションがある。例えば階段部分のスパンが2100の場合、3分割し700のパネルを作るのだが、正確には手摺子の直径分のスパンを差分した「手摺子パネル – ブラケット付ガラス:680」を作る。このようにコツコツとパネルと手摺タイプのバリエーションを作っていけば、破綻しないように手摺子パネルと手摺子支柱を割り付けることができるのだが、ここまで説明するとすでにお分かりのように、さまざまな幅Wの「手摺子パネル – ブラケット付ガラス:W」を作成しなくてはならない。スパンが2700と2697の3mm違いでもメンバーが変わる。階段の手摺ではそういう微妙な違いが多々生じてしまう。例えば上のL型階段の場合、以下のコンディションごとに異なる寸法が発生する。

■1階から踊り場までの階段部:(a)外側手摺 (b)内側手摺
■踊り場:(c)外側の手摺 (d)内側の手摺(接合部)
■踊り場から2階までの階段部:(e)外側手摺 (f) 内側の手摺

といった具合である。うまく計画すれば(a)と(b)、(e)と(f)は同じものにでき、(d)は無くすことができるが、実際の設計の現場ではそうは問屋が卸さない。とくに日本の一般的な住宅のようにスペース限られている場合はなおさらである。

もっとスマートな解決策は無いか? 1つのファミリタイプだけですべて作成できないか? その為にはパネル幅が様々なスパンに自由に追従する変幻自在な手摺子パネルを作成する必要がある。そう「アダプティブコンポーネント」の出番である!

変幻自在? アダプティブな手摺

アダプティブ標準手摺ファミリーの作成

それでは寸法が様々なスパンに追従する手摺子ファミリ、アダプティブコンポーネントを作成してみよう。テンプレートは「一般モデル(メートル単位)、アダプティブ.rft」を使う。ここで作成するのは、以下の2種類の手摺子。<図07>が基本ユニットの「アダプティブ標準手摺」で、青い2点が「配置ポイント1」「配置ポイント2」である。水平面でも斜面にも自由に追従可能なアダプティブな配置点である。端部の「配置ポイント2」が開いているが、「アダプティブ標準手摺」を連続して繰り返し配置し、閉じるときは<図08>の手摺子支柱「アダプティブ端部手摺」を配置し終点とする。


<図07>「アダプティブ標準手摺」親ファミリ


<図08>「アダプティブ端部手摺」親ファミリ

「アダプティブ標準手摺」の中で、「配置点1」上に手摺子(支柱)のフォームだけを直接作成し、トップレールの「手摺(笠木)<図09>」と「ガラスパネル<図10>」の子ファミリはネスト/ロードさせている。子ファミリのガラスパネルには、さらに孫ファミリの「ブラケット」が入っている<図11>。


<図09>「手摺(笠木)」子ファミリ


<図10>「ガラスパネル」子ファミリ


<図11>「ブラケット」孫ファミリ

もちろん、手摺の高さ、手摺笠木の径、手摺子支柱の径、パネルと上下左右のギャップ、ガラスの厚さ、ブラケットのサイズ、各要素のマテリアルはすべてパラメ化し、ロードしたプロジェクトの中ですべて調整できるようにする。当初は「標準手摺」の中で手摺笠木からガラスパネルまですべて作成しようと試みたが、子ファミリとして分岐させて親にとり込んだ方が作成しやすく、またパラメーターも整理されコントロールしやすい。親子孫の相関は<図12>。※手摺子支柱は親の中で作成しているが、手摺(笠木)と同様に子供として取り込んでも良い。

★親「アダプティブ標準手摺」
☆子「手摺(笠木)」
☆子「ガラスパネル」
☆☆孫「ブラケット」
★親「アダプティブ端部手摺」

<図12>親子孫の相関

手摺の配置点の作成

ここからはこのアダプティブ手摺の設置である。アダプティブ手摺を配置するには、<図13>のように階段上に参照線と配置点をつくる。この作図は「インプレイスマス」の中で行う。現場打ちコンクリートのことをCast-In-Place Concreteと言うが、インプレイスとは工場での規格品の大量生産ではなく、現場に応じた工事というニュアンスである。


<図13>手摺の配置点の作図

効率良く行うには手摺の配置面に参照面を作成し、参照面には「階段1外」「階段1内」「階段2外」「階段2内」などと名前を付けておき、断面図で参照面(作図面)を選択できるようにしておく<図14>。


<図14>作図準備(参照面の作成)

例えば断面図1の外側の手摺の配置点の作図では、まず作業面となる「階段1外」の参照面を有効にし、<図15>のように参照線を作成し「パスを分割」で等分割してアダプティブポイントを生成する。


<図15>参照線の作図と「パスの分割」

ここでは3等分すると踏面に支柱がうまくのっかる。3等分の場合は、配置点は植木算で両端を含み4点となる<図16>。分割数は変更可能である。パスを分割する必要の無い場合、つまり両端だけの配置点の場合は2点となる。


<図16>3等分の場合配置点は両端を含み「4」

これを踊り場と2階まで作成する。この参照線と分割点はインプレイスマスの中で作成する。これで準備が完了である<図13>。ここでは外側手摺だけでご容赦を。

※パスの分割は均等に分割することしかできない。均等分割でうまく割り付けられないときは1本の連続した参照線を2本や3本に分けて作図するか、パスの分割ではなく参照線の上に点を配置する方法もある。参照線の上には制御点が自由に配置でき、その制御点にアダプティブ手摺を配置することができる。

アダプティブ手摺の設置

最後にこの配置点に配置するには、プロジェクトにロードした「アダプティブ標準手摺」をプロジェクトブラウザからグーっと3Dビューにドラックすると出てくるので、最初の点と次の点にクリックしていくと設置できる<図17>。斜めでも水平でも設置可能な点が、アダプティブファミリーの優れた所である。アダプティブファミリーのカテゴリーは初期設定では「一般」なのでロードするときにタイプを「手摺」とする。カテゴリーを「手摺」にしておかないと、手摺ファミリーのブラウザのリストに出てこないので注意。(その場合「一般」の中に隠れている。)


<図17>ファミリブラウザからドラッグしてくる

これを一つ一つ配置しても良いのだが、インプレイスマスの中では繰り返しコピーといコマンドがあるので便利<図18>。残りの配置点に自動的に配置してくれる。


<図18>繰り返しコピー

この作業を踊り場、踊り場から2階までを行い、最後の端部は「アダプティブ端部手摺」で終了させる<図19>。


<図19>手摺終端「アダプティブ端部手摺」

完成は<図20>となる。パスの作図は少々面倒だが、階段のデザインなのでこのくらいの労力は最低限である。


<図20>L型階段の踏面に配置したアダプティブ手摺

注意したいのはアダプティブ手摺をインプレイスマスの中で配置すると、マスが非表示になっていると手摺を選択してもロックされた状態となり、タイププロパティのパラメーターを調整できないこと。マスを表示させて参照線と分割点と手摺の入ったインプレイスを選択し「インプレイスの編集」でインプレイスの中に入ると、せっかく設定した手摺の高さなどのパラメーターを調整することができる<図21>。


<図21>手摺はインプレイスマスの中に入っている

インプレイスマスの中に手摺を配置したが、配置点だけインプレイスの中で作成し、手摺はインプレイスの中に配置せずに直接プロジェクト上に設置することも可能。この場合繰り返しコピーが使えないだけで、このくらいの数の手摺パネルであればインプレイスの中に入れて作業する必要性は特にありませんね。

210410 HN

Rhino Inside Revit, Revit上でRhino/Grasshopperを走らす

最近Rhinoが6から7にバージョンアップされた。Rhino7に標準装備された評判(?)の「Rhino Inside Revit」を使ってみたので紹介する。

そもそもRhinoとは?動物の「サイ」と名付けられた「Rhinoceros 3D」(以下Rhino またはライノ)は、学生からプロまで世界中のデザイナーに愛用されている3D CADソフトである。特に曲面のデザインに優れている。さらにGrasshopperを始めとしてさまざまなプラグインが公開されており、コンピューテーショナルデザイン、パラメトリックデザインの世界共通のツール / 言語となっている。20年ほど前、アメリカ留学中の友人に、ロンドンAAスクール出身でFOAのデザインアーキテクトの一人だった優秀なキプロスの建築家がいた。彼は当時からRhinoを使っており、FOA時代には横浜大さん橋のコンペにデザインチームの一人として参加した。当時(さらに5年程遡るので25年ほど前)は、Rhinoも普及されておらず(日本ではほぼゼロであったろう)、FOAが発表した客船ターミナルの地形のようなサーフェスデザインはまさに衝撃であった。さて本題から脱線し過ぎないうちに、デモを始めよう。

Rhino Inside Revit

「Rhino Inside Revit」はRevitのプラグインである。Rhinoceros 3Dの公式サイトからダウンロードできる。https://www.rhino3d.com/inside/revit/beta/getting-started

ダウンロードするとRevitのアドインリボンにRhinoのお馴染みのサイのアイコンが追加される<図01>。インストールしてから最初にRevitを起動する際に、アドインを追加して良いか聞かれるので、もちろんOKする。(いったんOKすると次回の起動からは常にインストールされる。)またRevitのショートカットとしてRを「Rhino Inside Revit」に勝手に割り当てる。

<図01>Rhino Inside Revitアドイン

Rhino Inside Revitアドインを開けると、以下のようなリボンとなる<図02>。ここからRhinoに入る、Rhino Inside Revitというわけである。Rhino Inside Revitは、単独でRhinoを操作しているのではないので、Revit無しでRhino+Grasshopperを立ちあげてもGrasshopper(以下GH)のRevitのコンポーネントは使用できない※。

※Rhino Inside RevitのGHで作成したドキュメントを、Revitを介さず開くとRevitコンポーネントが読み込めないと警告が出る。警告は無視しドキュメントを開くことは出来るが、Revitコンポーネントは全て真っ白となり、GH単独でRevitコンポーネントは使用できない<図03>。

<図02>Rhino Inside Revitのリボン

<図03>Rhino Inside RevitのGHで作成したRevitコンポーネントはGH単独では機能しない。

それではRhino Inside Revitを開いてみよう。まずRhinoボタンを押してRhinoを立ち上げる<図04>。するとRhinoの画面がポップアップする。繰り返すが、これはRhinoではなくRevitの中のRhinoである。(まるで禅問答。。。)

つぎにGrasshopper(以下GH)ボタンからGHを立ち上げる<図05>。Rhinoを介さず直接GHだけ使用することもできる。これで準備完了。

<図04>Rhino Inside RevitのRhinoの画面(右)

<図05>Rhino Inside RevitのGHの画面(中央)

Grasshopperによるスパイラルタワーのデザイン

GHでシンプルなスパイラルタワーをデザインしてみよう。今やこの造形は世界中の都市で出現しているが、まさにRhino + Grasshopperの産物と言ってよい。GHの操作はネットや書籍でさまざまなチュートリアルや動画があるので、おさらい程度に。(筆者も思い出しながら。)

ステップ1, 楕円のフロア

まずXY平面(1階)に楕円フロアを生成し、それを最上階に移動する<図06>。Ellipse, Move, Unit Z

<図06>Ellipse, Move, Unit Z

ステップ2, 最上階回転

最上階の楕円を回転する<図07>。Rotate ※

※1階と最上階の2平面の場合、回転角度は60度くらいまでが限度、それ以上回すと次のステップでサーフェスが破綻する。さらに回転させたい時は中間階が必要。

<図07>Rotate

ステップ3, Loft

そして1階と回転した最上階の楕円をつなげる/スィープする。ここでRhinoのもっともポピュラーで強力なコマンドLoftの出番<図08>。このようにねじれた楕円のシームレスな押し出しサーフェスをインスタントに生成できるのである。このコマンドは世界中の建物のデザインを変えてしまった。

<図08>Loft

このロフトのモデルはRevitにも同期されている<図09>。つまりRevitの中で直接GHが使えるようになったということ!「Rhino Inside Revit」以前は、GHをRevitにプッシュさせるには特別なツールを必要としていた。ザハ事務所はそのスペシャルツールを駆使しているとのこと。

<図09>RevitとGHの同期

ステップ4, パネリング

ここから先はエンベロップの作成。まずはロフトサーフェスをUVグリッドに分割する<図10>。Isotrim(Sub Surface), Divide Domain 2

<図10>Sub Surface

さらにパネルを面(Face)、エッジ線(Edge)、頂点(Vertice)に分解する。Deconstruct Brep

ステップ4, 三角パネル

ここでは三角パネルを割り付ける。無数の四角のリストから、3点の頂点のセットを抽出するには、Cull(摘み取る)というコンポーネントCull Patternを使うと便利<図11>

<図11>Cull Pattern

パネルのパターンを確認するためにPoly Lineを使う。ポリラインはCloseすることを忘れずに(Closeしないとせっかく3点抽出しても三角形にならない)。Patternの端子に3つのBoolean Toogleボタンを接続し、ボタンのON、OFFで摘み取りのパターンを確認する。True, True, Trueだと4点のまま<図12>。True, True, Falseだと1点が摘み取られ3点が抽出される<図13>。

<図12>Cull Pattern : True, True, True

<図13>Cull Pattern : True, True, False

筆者も含めなんだか訳が分からないが、Boolean Toogleボタンを複数付け、ON-OFFを適当に組み合わると、パターンが切り替わるので実験するべし。

ステップ5, Revit Familyの読み込み

最後に割り付けるパネルは、RevitのAdaptive Component Family で作成する<図14>。マリオンの太さは後で調整できるようにパラメーターとして設定。これをプロジェクトの中にロードする。

※アダプティブファミリーの作成は最初は少々とっつき難いので、YouTubeにアップしました。↓

<図14>三角形のパネル、Adaptive Component Family(解説動画)

次にGHでこの三角形パネルファミリーを読み込む。Model Categories Picker, Element Type Picker でプロジェクトにロードしたAdaptive Componentを読み込むことができる<図15><図16>。ちなみにRevitを使用しているので、最後はRevitのファミリをロードしてこないと、Revitを使っている意味が無いのである。

<図15>Model Categories Picker

<図16>Element Type Picker

最後にAdd Component (Adaptive)に先にCullで抽出した3点セットのリストと接続すると、パネルが割付られる<図17>。パネル数が多くなると、割り付けられるまで少し時間がかかるが、じっと我慢。計算している間に下手に触るとフリーズのもと。

<図17>Add Component (Adaptive)

もちろんRevitのモデルも更新される!<図18>

<図18>GHのコードからRevitのファミリを呼び出す

最後に、先に設定した三角パネルのマリオンの太さのパラメーター(mullion width)をGHの中で調整できるようにする。Revitのタイププロパティで変更すれば同じことだが<図19>、せっかくここまでGHで生成したので100%GHのスクリプトで実行しようということである。

<図19>Revitのファミリパラメーターの設定画面

Set Element Parameter を使う<図20>これでマリオン太さをGHの中で調整できるようになった。GHの中でこのタワーの形状を決定するすべてのパラメーター「楕円平面の半径」「タワーの高さ」「パネリンググリッドの数(UV)」「回転角度」「マリオンの太さ」を設定調整し、直接Revitに反映できるようになっている。パネリングの計算は高負荷なので、筆者のパソコンのような「普通の」スペックのPCの場合は、いったんAdd Component (Adaptive)Disableにしてから、ポリラインで成果を確認・検討するのが良い。繰り返すが、計算中はむやみにキーボードやマウスをいじらない。我慢しない筆者は何度フリーズしたことか。。「Revit上でRhino/Grasshopperを走らす」と銘打ったが、結局「走る」じゃなくて「歩く」って感じでした。そんなことに気をつけながら、RevitでGrasshoppingしてみてください!

<図20>Set Element Parameter

追記:上の楕円のスパイラルタワーをRevitで作成するとこうなります。↓

2021.03.13 HN