Dynamo
Primer for v2.0
日本語
日本語
  • この Web サイトについて
  • はじめに
    • Dynamo とは、その動作の仕組みとは
    • Primer ユーザ ガイド、Dynamo コミュニティ、プラットフォーム
  • Dynamo のセットアップ
  • ユーザ インタフェース
    • ワークスペース
    • ライブラリ
  • ノードとワイヤ
  • 基本ノードと概念
    • ノードの索引
    • 計算設計用のジオメトリ
      • ジオメトリの概要
      • ベクトル、平面、座標系
      • 点群
      • 曲線
      • サーフェス
      • 立体
      • メッシュ
    • プログラムの構成要素
      • データ
      • 数学的方法
      • ロジック
      • 文字列
      • 色
    • リストを使用した設計
      • リストの概要
      • リストの操作
      • リストのリスト
      • N 次元のリスト
    • Dynamo のディクショナリ
      • ディクショナリとは
      • [Dictionary]カテゴリのノード
      • コード ブロックにおけるディクショナリ
      • Revit での使用例
  • カスタム ノードとパッケージ
    • カスタム ノード
      • カスタム ノードの概要
      • カスタム ノードを作成する
      • ライブラリへのパブリッシュ
    • パッケージ
      • パッケージの概要
      • パッケージのケース スタディ - Mesh Toolkit
      • パッケージを開発する
      • パッケージをパブリッシュする
      • Zero-Touch Importing
  • Revit 用の Dynamo
    • Revit との連携
    • 選択
    • 編集
    • 作成
    • カスタマイズ
    • 設計図書の作成
  • Dynamo for Civil 3D
    • Civil 3D の接続
    • スタートアップ
    • ノード ライブラリ
    • サンプル ワークフロー
      • 道路
        • 照明柱の配置
      • 土地
        • サービスの配置
      • ユーティリティ
        • 構造物の名前を変更する
      • 軌道
        • クリアランスのエンベロープ
      • 測量
        • ポイント グループ管理
    • 高度なトピック
      • オブジェクト バインド
      • Python と Civil 3D
    • Dynamo プレーヤ
    • 便利なパッケージ
    • リソース
  • Dynamo in Forma Beta
    • Forma で Dynamo Player を設定する
    • Dynamo Player でグラフを追加、共有する
    • Dynamo Player でグラフを実行する
    • Dynamo コンピューティング サービスとデスクトップ版 Dynamo の違い
  • Dynamo でのコーディング
    • コード ブロックと DesignScript
      • コード ブロックとは
      • DesignScript 構文
      • 省略表記
      • 関数
    • DesignScript を使用するジオメトリ
      • DesignScript ジオメトリの基本
      • ジオメトリ プリミティブ
      • ベクトル計算
      • 曲線: 補間および制御点
      • 移動、回転、およびその他の変換
      • サーフェス: 補間、制御点、ロフト、回転
      • ジオメトリのパラメータ化
      • 交差およびトリム
      • ジオメトリのブール演算
      • Python 点ジェネレータ
    • Python
      • Python Script ノード
      • Python と Revit
      • 独自の Python テンプレートを設定する
    • 言語の変更
  • ベスト プラクティス
    • 見やすいプログラムを作成するためのガイドライン
    • スクリプト作成のガイドライン
    • スクリプト リファレンス
    • プログラムを管理する
    • Dynamo で大規模なデータ セットを効率的に操作する
  • サンプル ワークフロー
    • スタートアップ ワークフロー
      • パラメータを使用する花瓶
      • アトラクタ ポイント
    • 概念インデックス
  • 開発者向け Primer
    • ソースから Dynamo をビルドする
      • ソースから DynamoRevit をビルドする
      • Dynamo での依存関係の管理と更新
    • Dynamo 向けの開発
      • スタートアップ
      • Zero-Touch ケース スタディ - グリッド ノード
      • Zero-Touch ノードで Python スクリプトを実行する(C#)
      • Zero-Touch の詳細を確認する
      • Dynamo ノードの高度なカスタマイズ
      • Dynamo パッケージで COM (相互運用)タイプを使用する
      • NodeModel ケース スタディ - カスタム UI
      • Dynamo 2.x 用のパッケージと Dynamo ライブラリを更新する
      • Dynamo 3.x 用のパッケージと Dynamo ライブラリを更新する
      • 拡張機能
      • Dynamo 2.0+ のカスタム パッケージ編成を定義する
      • Dynamo コマンド ライン インタフェース
      • Dynamo の統合
      • Dynamo for Revit 向けの開発
      • パッケージをパブリッシュする
      • Visual Studio からパッケージをビルドする
      • パッケージとしての拡張機能
    • プル リクエスト
    • テストによる期待
    • サンプル
  • 付録
    • よくある質問(FAQ)
    • ビジュアル プログラミングと Dynamo
    • リソース
    • リリース ノート
    • 便利なパッケージ
    • サンプル ファイル
    • ホスト統合マップ
    • PDF をダウンロード
    • Dynamo のキーボード ショートカット
Powered by GitBook
On this page
  • アダプティブ コンポーネント
  • 相互運用性の原則
  • 複数の要素とリスト
  • DirectShape の要素
  • 演習: 要素とリストを生成する
  • 演習: DirectShape の要素
Edit on GitHub
Export as PDF
  1. Revit 用の Dynamo

作成

Previous編集Nextカスタマイズ

Last updated 2 months ago

Dynamo では、完全なパラメトリック コントロールを使用して Revit 要素の配列を作成できます。Dynamo の Revit ノードは、一般的なジオメトリから特定のカテゴリ タイプ(壁、床など)まで、さまざまな要素を読み込む機能を提供します。このセクションでは、パラメータを使用してアダプティブ コンポーネントを含む柔軟性が高い要素を読み込みます。

アダプティブ コンポーネント

アダプティブ コンポーネントはオブジェクトの生成に役立つ柔軟性の高いファミリ カテゴリです。インスタンス化すると、アダプティブ点の基本的な位置でコントロールされる複雑なジオメトリ要素を作成することができます。

以下は、ファミリ エディタ上で 3 つのアダプティブ点により構成されているアダプティブ コンポーネントです。これにより生成されるトラスは、各アダプティブ点の位置によって設定されます。次の演習では、このコンポーネントを使用して、ファサード全体に一連のトラスを生成します。

相互運用性の原則

アダプティブ コンポーネントは相互運用性のベスト プラクティスの好例です。基本的なアダプティブ点を設定することにより、アダプティブ コンポーネントの配列を作成できます。また、このデータを他のプログラムに転送すると、ジオメトリを単純なデータに変換できます。Excel などのプログラムに読み込んだり書き出す場合も同様です。

ファサード設計の監修者が、完全なジオメトリを詳細に解析する必要なく、トラス要素の位置を確認する必要があるとします。製造の準備段階で、コンサルタントはアダプティブ点の位置を参照することにより、Inventor などのプログラムでジオメトリを再生成できます。

次の演習のワークフローでは、このようなデータすべてにアクセスしながら、Revit 要素を作成するための設定を行います。このプロセスにより、概念化、ドキュメント作成、製造を、1 つのシームレスなワークフローに統合できます。これにより、相互運用性を実現するためのよりインテリジェントで効率的なプロセスを作成できます。

複数の要素とリスト

DirectShape の要素

Dynamo のパラメトリック ジオメトリを Revit に読み込む別の方法として、DirectShape を使用する方法があります。つまり、DirectShape 要素と関連クラスは、外部で作成されたジオメトリ形状を Revit ドキュメントに保存する機能をサポートしています。ジオメトリには閉じたソリッドやメッシュを含めることができます。DirectShape の主な目的は、「実際」の Revit 要素を作成するための情報が不足している IFC や STEP などの他のデータ形式の形状を読み込むことにあります。DirectShape 機能は、IFC や STEP のワークフローのように、Dynamo で作成されたジオメトリを Revit プロジェクトに実際の要素として読み込むことに優れています。

演習: 要素とリストを生成する

下のリンクをクリックして、サンプル ファイルをダウンロードします。

すべてのサンプル ファイルの一覧については、付録を参照してください。

このセクションでサンプル ファイルの使用を開始した場合(または、前のセッションの Revit ファイルを継続して使用した場合)は、同じ Revit のマスが表示されます。

  1. これはファイルを開いた状態です。

  2. これは、Dynamo で作成したトラス システムです。高度な方法で Revit のマスにリンクされています。

これまで Select Model Element ノードと Select Face ノードを使用しました。ここでは、ジオメトリ階層の 1 段階下の層で Select Edge ノードを使用します。Dynamo ソルバを 自動 で実行するように設定すると、グラフは Revit ファイルの変更に応じて継続的に更新されます。選択したエッジは Revit 要素トポロジに動的に関連付けられます。トポロジ* が変更されない限り、Revit と Dynamo 間の接続はリンクされ続けます。

  1. グレージング ファサードの最上部の曲線を選択します。これは建物の全体の長さに及びます。Revit でエッジを選択するには、エッジにカーソルを置いて、目的のエッジがハイライト表示されるまで [Tab] を押し続けます。

  2. 2 つの Select Edge ノードを使用して、ファサード中央の傾斜を示す各エッジを選択します。

  3. Revit でファサードの最下部のエッジに対して同じ操作を行います。

  4. Dynamo に線が設定されたことが Watch ノードによって示されます。エッジ自体は Revit 要素ではないため、自動的に Dynamo ジオメトリに変換されます。これらの曲線は、ファサード全体にわたるアダプティブ トラスをインスタンス化する際に使用する参照です。

*トポロジの一貫性を保持するため、面やエッジが追加されないモデルを参照しています。パラメータを使用して形状を変更することはできますが、トポロジの作成方法を変更することはできません。

まず曲線を結合して 1 つのリストに統合する必要があります。これにより、曲線を「グループ化」して、ジオメトリ操作を実行できます。

  1. ファサードの中央にある 2 つの曲線のリストを作成します。

  2. List.Create コンポーネントを Polycurve.ByJoinedCurves ノードに接続して、2 つの曲線を 1 つのポリカーブに結合します。

  3. ファサードの最下部にある 2 つの曲線のリストを作成します。

  4. List.Create コンポーネントを Polycurve.ByJoinedCurves ノードに接続して、2 つの曲線を 1 つのポリカーブに結合します。

  5. 最後に、3 つの主要な曲線(1 つの直線と 2 つのポリカーブ)を 1 つのリストに結合します。

直線になっている最上部の線を使用して、ファサードのスパン全体を表します。この線に沿って平面を作成し、リストでグループ化した曲線のセットと交差させます。

  1. Code Block ノードで、構文 0..1..#numberOfTrusses; を使用して範囲を設定します。

  2. Integer Slider ノードを Code Block ノードの入力に接続します。お分かりのとおり、これはトラスの数を表します。スライダは項目の数を 0 から 1 の範囲でコントロールします。

  3. Code Block ノードを Curve.PlaneAtParameter ノードの param 入力に接続し、最上部のエッジを curve 入力に接続します。これにより、10 個の平面がファサードのスパン全体にわたって均等に配置されます。

平面はジオメトリの抽象的なピースであり、無限の 2 次元空間を表します。平面は輪郭や交差の作成に適しています。実際に行ってみましょう。

  1. Geometry.Intersect ノード(レーシングのオプションを直積に設定)を使用して、Curve.PlaneAtParameter を Geometry.Intersect ノードの entity 入力に接続します。メインの List.Create ノードを geometry 入力に接続します。Dynamo のビューポートには、設定した平面と各曲線の交点が表示されます。

出力にはリストのリストのリストが表示されます。操作目的に対してリストの数が多すぎます。リストの一部をフラットにしましょう。リストの 1 段階下の層で結果をフラットにします。これを行うには、Dynamo Primer のリストに関する章で説明したように、List.Map 操作を使用します。

  1. Geometry.Intersect ノードを List.Map の list 入力に接続します。

  2. Flatten ノードを List.Map ノードの f(x) 入力に接続します。この結果、リストは 3 個になり、各リストにはトラスと同じ数の項目が含まれます。

  3. このデータは変更する必要があります。トラスをインスタンス化する場合は、ファミリで設定されているアダプティブ点と同じ数を使用する必要があります。これは 3 つの点で構成されているアダプティブ コンポーネントです。このため、それぞれ 10 個の項目(numberOfTrusses)が含まれている 3 個のリストではなく、それぞれ 3 個の項目が含まれている 10 個のリストが必要になります。これにより、10 個のアダプティブ コンポーネントを作成できます。

  4. List.Map ノードを List.Transpose ノードに接続します。これで目的のデータ出力を得ることができます。

  5. データが正しいことを確認するには、Polygon.ByPoints ノードをキャンバスに追加して、Dynamo プレビューで再確認します。

ポリゴンを作成するのと同じ方法で、アダプティブ コンポーネントを配列します。

  1. AdaptiveComponent.ByPoints ノードをキャンバスに追加し、List.Transpose ノードを points 入力に接続します。

  2. Family Types ノードを使用して、AdaptiveTruss ファミリを選択し、これを AdaptiveComponent.ByPoints ノードの FamilyType 入力に接続します。

Revit では、10 個のトラスがファサード全体にわたって均等に配置されています。

グラフを柔軟に調整することができます。Integer Slider ノードを変更して numberOfTrusses を「30」にします。トラスの数が尋常でなく増えますが、パラメトリック リンクは機能しています。確認したら、numberOfTrusses を 15 に設定します。

最後の確認として、Revit でマスを選択してインスタンス パラメータを編集することにより建物の形状を変更して、トラスがこれに従って変更されるかを確認します。この更新を確認するには、この Dynamo グラフを開いておく必要があります。閉じた場合、リンクはすぐに切断されます。

演習: DirectShape の要素

下のリンクをクリックして、サンプル ファイルをダウンロードします。

すべてのサンプル ファイルの一覧については、付録を参照してください。

このレッスンのサンプル ファイル ARCH-DirectShape-BaseFile.rvt を開きます。

  1. 3D ビューには、前の演習で使用した建物のマスが表示されます。

  2. アトリウムのエッジに沿って見えるのは 1 つの参照曲線です。これは Dynamo で参照する曲線として使用します。

  3. アトリウムの反対側のエッジに見えるのは別の参照曲線です。これも Dynamo で参照します。

  1. Dynamo でジオメトリを参照するには、Revit の各要素に対して Select Model Element ノードを使用します。Revit でマスを選択し、Element.Faces ノードを使用して Dynamo にジオメトリを読み込みます。これで、マスが Dynamo プレビューに表示されるようになります。

  2. Select Model Element ノードと CurveElement.Curve ノードを使用して、一方の参照曲線を Dynamo に読み込みます。

  3. Select Model Element ノードと CurveElement.Curve ノードを使用して、もう一方の参照曲線を Dynamo に読み込みます。

  1. この構造は、Diagonal Shift、Camber、Radius という 3 つの主要なパラメータでコントロールされます。

このグラフのパラメータをクローズアップします。これらを調整して、さまざまなジオメトリを出力できます。

  1. DirectShape.ByGeometry ノードをキャンバス上にドロップすると、geometry、category、material、name という 4 つの入力が表示されます。

  2. ジオメトリは、グラフのジオメトリ作成部分から作成されるソリッドになります。

  3. category 入力は、ドロップダウン Categories ノードを使用して選択されます。ここでは、[Structural Framing]を使用します。

  4. 上記のノードの配列から material 入力が選択されます。この場合は、より単純に「既定値」として設定できます。

Dynamo を実行した後に Revit に戻ると、プロジェクト内の屋根に読み込まれたジオメトリが表示されます。これは生成モデルではなく構造フレーム要素です。Dynamo へのパラメトリック リンクは維持されます。

では、Revit 要素を作成するためのデータを Dynamo が参照する仕組みについて学習します。複数のアダプティブ コンポーネントを生成するには、リストのリストを設定します。各リストには、アダプティブ コンポーネントの各点を表す 3 つの点が含まれています。Dynamo でデータ構造を管理する際は、このことを考慮します。

で、Dynamo ジオメトリを DirectShape として Revit プロジェクトに読み込む方法を学習しましょう。この方法を使用すると、Dynamo グラフへのパラメトリック リンクを維持しつつ、読み込んだジオメトリのカテゴリ、マテリアル、名前を割り当てることができます。

縮小して画面をサンプル グラフの右に移動すると、大きなノードのグループが見えます。これらはジオメトリを操作し、Dynamo プレビューで表示される格子状の屋根構造を生成します。これらのノードは、Dynamo Primer の で説明されている[ ノードをコード化 ]機能を使用して生成されます。

コード ブロックに関するセクション
最初の演習
2 番目の演習
5MB
Revit-Creating.zip
archive
5MB
Revit-Creating-DirectShape.zip
archive