「デジケン」管理人のpannaです。今回のチュートリアルではDynamoを使用して柱を作成します。
今回は0から柱の作り方を解説します。
今回は非常に便利なCode Blockについての情報も載せているので確認しましょう。梁の作り方が気になる方は前回の記事をCheckしてみて下さい。
初心者のためのチュートリアルA06|柱を作成する
柱を作成するには「StructuralFraming.ColumnByCurve」を使用します。
「StructuralFraming.ColumnByCurve」 は線分とレベルと柱のタイプを入力として渡してあげることで、Revit内に柱を作成します。
この通りノードをつなげれば上の画像のように柱(例ではT型断面の柱)はできてしまうのですが、細かいテクニックを入れていますので一つずつ解説します。
Code Blockのテクニックを覚えよう
まず次の画像を見てください。
ここでは大きく分けて次の2つの事をしています。
- 点を作成する
- 点から線を作成する
これは前回以前の内容で習得済ですが、「Code Block」の使い方に新しい内容が含まれています。
Code Blockで数列を作成する
上図の「Code Block 1」では、点を作るノードに入力させるデータとして「0..1000..1000」という見慣れない表記があります。
実はこの「0..1000..1000」 という表記だけで数列を作成することができます。各数字の意味は下記の通り。
初期値 .. 最大値 .. 増分;
つまり、(0, 1000)という数列を作っています。
Code Blockの行の最後には ; (セミコロン)を書くルールがありますのでお忘れなく。
もう一度「点を作成する」ノードグループを見ると、どのような点が作成されているか分かると思います。
ここでは、X,Y座標に(0)、Z座標には(0, 1000)を入力し、(0,0,0), (0,0,1000)の位置に点が作成されています。
「なぜXY座標には一つずつしか入力がなく、Z座標には2つ入力があるのかよく分からない」と思いますよね。
Z座標として入力した(0, 1000)に合わせてXY座標の(0)を補完入力してくれます。もし不安な方は(0,0)のように数列を作成しても良いと思います。
話は戻りますが、点は次の画像のように (0,0,0), (0,0,1000)の位置に 作成されます。
Code Blockでインデックスを指定してリストからアイテムを取り出そう
「Code Block 2」には、「Point01=IN[0];」のように謎の文章が書かれています。
プログラミングに精通している方であればすぐに察しが付くと思いますが、下記の様な意味があります。
リスト「IN」から、インデックス「0」のアイテムを取り出してPoint01に格納する
言い換えると、「入力データ(リスト)の0番目のアイテムを取り出しますよ」という事です。
今Dynamoで作成した点の数は二つです。作成した2点にはそれぞれ次の画像のようにインデックスがつけられています。
インデックス「0」の点は (0,0,0)、インデックス「1」の点は (0,0,1000)です。
改めて「点と線を作成するノードグループ」を見てみましょう。
作成した2点のうちインデックス「0」を始点(start point)とし、インデックス「1」を終点(end point)とする線分を作成していると理解できると思います。
線分から柱を作成する
作成した線分を参照線として柱を作成します。
下記をご覧ください。
「StructuralFraming.ColumnByCurve」にcurveという入力項目がありますが、このノードに先ほど作成した線分をつなげます。
線分のほかに、レベルと柱のファミリタイプを入力させることで、柱が作成されます。
今回はT型断面のファミリを使用しているのでT型断面の柱が作成できました。
まとめ
今回は少々盛りだくさんでしたね。内容をおさらいすると次の通りです。
- 柱を作成するには「StructuralFraming.ColumnByCurve」
- CodeBlockで数列を作成できる「 初期値 .. 最大値 .. 増分; 」
- Code Blockを使ってリストからインデックス指定でアイテムを取り出せる「 A=IN[0]; 」
コメント
コメント一覧 (2件)
前段でこちらで詳しくとあったので期待しておりましたが、理解できなかったのは私だけでしょうか?
やはり各段階で理解できないことが積み重なって、ここでの理解不能に繋がっていると思います。
チュートリアルの質の向上につながりますので、もしよろしければ理解不能点を具体的にお伝えください。