クラッシュボール: Navisworksでの干渉チェックを Rhino で確認する方法

主に Rhino で作業しているプロジェクトにて、ファスナーの金物と鉄骨、二次部材の干渉をチェックしたいシーンがありました。片手で数えられるオブジェクトであれば、Rhino や Grasshopper の機能でやってしまいますが、大きなデータでは計算に時間がかかってしまう場合があります。

このような時に、Navisworks を用いた干渉チェックが有用だそうです(僕はこのソフトの名前を最近知りました)。

Revit と Navisworks に関して Youngcheol さんの記事があったので、こちらを参考にして進めてみます。

以下動作環境です

  • Rhinoceros 6 + Grasshopper 1.0007
  • Autodesk Navisworks Manage  2022
  • VSCode (これは任意のテキストエディタで良いです)

テストデータやGHファイルはここからダウンロードできます(メールアドレスがいります)

220218_files

220218_files

Send download link to:

今回はこんな感じのテストデータを作りました。

適当な躯体(躯体ファイルを作っています)

躯体と干渉がある適当なオブジェクト(青いパイプだけのファイルを作っています)

Navis に入れてみます

見ている角度が違いますが、躯体ファイルとパイプファイルを入れました。(ここでは2つのファイルを作っていますが、正しく設定すると、1つのファイルからレイヤーやオブジェクトタイプで干渉テストを実行できるようです。)
干渉チェックを実行すると8か所の干渉が出ています。結果をReport のタブから xml ファイルを書き出します。

結果を確認してみます。

Excel に xml ファイルを投げ込んで表示してみると AC, AD, AE の列に座標が書かれているのが確認できます。

Rhino でクラッシュボールの作成

この xml ファイルに記載された座標を Rhino 上の球のオブジェクトに変換してみようと思います。

今回の作戦は、Python で xml ファイルから値を取得するというものです。Grasshopper のプラグインの中に xml ファイルにアクセス出来るものもありますが、プラグイン無しで出来ることにはプラグインを利用しない主義(僕個人が)なので Python を利用します。

まずは xml ファイルを VSCode で確認してみます。

VSCode で表示した様子(シンタックスハイライトのおかげでわかりやすいですね)

53-55 行目に注目すると、clashpoint という要素名で座標がくくられていますね。

(個人的な予想では clashpoint の下で x, y, z という要素名で値が指定されていると思っていましたが、pos3f という型の指定?とその属性情報として書かれていました)

<clashpoint>
    <pos3f x="12.320" y="7.263" z="7.615"/>
</clashpoint>

日常的にコーディングしている人ならば、ここまでで、どんなコードを書くと良いかお分かりかと思います。

RhinoPython で書いても良いですが、今回は GhPython で書いてみました(特に理由はないです)。

注意すべきポイントは以下の2点かと思います。

  • 要素ではなく属性として値が入っている点
  • メートル単位をミリ単位に変換が必要という点

干渉があった箇所に球を作成する

ここで作成した球を他の会社へ展開することで簡単に干渉箇所を共有することが出来ます。Youngcheol さんの記事にもあるように、球のオブジェクトにチェックした日付や、解決済み/未解決ステータスなどを UserText として入れても良いかもしれません。

まとめ

今回は、Navisworks を用いた干渉チェックをやってみながら、Rhino 上に干渉箇所を表示してみるということをしてみました。やり方を追っかけてみるという部分で終わってしまったので他の使い方も知りたいなと思いました。

余談ですが、現在シンテグレートではチームごとにオフィスデーが設定されています(最近含め感染者が多い時期は完全リモートです)。そのため、他のチームがどのようなことをやっているか間近で見ることは少ないです。主に Revit を使っているチームやレンダリングを行っているチームが会社にはいるので、他のチームの仕事などを聞いてみたいので早く完全に収束して欲しいなと思いました。

naoki.yoshioka

主にファサードプロジェクトを担当。使用言語は日本語と Python。C++(と英語)を勉強中。

シェアする

コメントを残す

メールアドレスが公開されることはありません。

2 × 5 =

コメントする