Dynamoのいろは 2・・良いプログラム

Dynamoで処理をさせるにはプログラムを作らなければなりません。



プログラムってさー

プログラムはやりたい作業の作業結果が正しければOKと思っていたのですが、どうやらプログラムには良いプログラムとそーでもないのがあるようです。

良いプログラムって何?

良いプログラムとは「正しく動作する」だけではなく「見やすい」「無駄な部分がない」プログラムの事です。

「見やすい」とは、プログラムを見てすぐに処理内容が理解できるということと、見た目が整理されていて理解しやすい状態にあるという2つの意味を含んでいます。「見やすい」プログラムはエラーや仕様変更への対応がスムーズにできる使い勝手の良いプログラムです。

また、ある結果にたどり着くためのやり方(←これを世間ではアルゴリズムと呼ぶ✨)は沢山ありますが、最終的に同じ結果になるのであれば余計な処理が少ない方が処理速度が速く精度も上がります。幾つかのアルゴリズムがある場合、より「無駄な部分がない簡素な」アルゴリズムのプログラムは当たり前ですが良いプログラムといえます。

「正しく動作する」プログラム 
「見やすい」プログラム 
「無駄な部分がない簡素な」プログラム

プログラミング前の心得

実際にノードを並べる(プログラミング)前に今一度どういう結果を出したいのか目的を明確にしてください。目的は、Revit使用中の「ポチポチやってられないんですけど!」の「ポチポチ」部分から生み出される結果部分ですから”そんなのよく分かってるよ~”と思われるかもしれませんが、大切なことなので念押しですwww

目的を確認したら次にDynamoに備わっている単純な機能をどのように組み合わせれば、目的の結果が得られるのかを考えます。考える時にプログラムの中心は”データ”であり、処理はデータを編集、加工、作成、抽出する脇役であることを意識します。




ま~Revitの機能とノードの種類の熟知度がアレだと・・・日々の鍛錬ですね💪


コツは”データを中心に考える”こと




お助けツール

見やすくて簡素なプログラムのためにDynamoには様々なツールが用意されています。
その中のいくつかを紹介します。

★グループ

ノードを選択してグループ化すれば、同じグループのノードの範囲に背景色が付けらてワークスペースで複数のノードをひとつの処理として表現できます。またグループにはタイトルが付けられるのでプログラムを読まなくても何の処理かが一目で判断できます。
※ノードは、ひとつだけでもグループにできます。

★Code Block(コードブロック)

配置するノードの数が減らせます。


★ノードをコードに変換する

なんていう事もできます。

★List@Level

なんかよく分かりませんが便利らしい
➡(矢印)の部分の事らしい・・

★ノードのレイアウト

ノードのレイアウトはプログラム途中でもその都度行う。お助けツールとして「選択項目を位置合わせ」ツールや「ノードのレイアウトをクリーンアップ」ツールがある。

★入力の名前を変更

ノードの名前は書き換え可能です。入力用のノードの名前は何が入力されるのかが分かるので便利ですが、それ以外のノードは慎重に行ってください。

★メモ書き

ノードの説明書きだけでは不足している部分を自分で補足するノートと呼ばれる付箋の様なメモが追加できます。



★モニタリング

プログラムの途中にある処理の結果を見る事ができるノードがあります。
ノードで処理したデータが見れる

ノードの処理により作成したジオメトリが見れる

★入出力

入力と出力は可能な限り少なくする。←ここが良く分かっていない

★プリセット

プリセットは使えるものなら使いたいですよね。(20/03/27)

★カスタムノード

複数のノードをひとつのコンテナに収納してカスタムノードにできます。

★テンプレート

新規作成から作らず、プログラミングのルールを標準化したテンプレートを用意しておけば社内のダイナモデータが統一され、読み取り易くなります。






はじめは自分でプログラムの良し悪しの判断をするのは難しそうですが、通常の自然言語と同じで沢山書いて沢山読むのが近道な気がします。でもなかなかねぇ




Revit2020
Dynamo Core2.1.0.7500