Dynamo上でPythonスクリプトを書く前に頭に入れておくこと

皆様こんにちは。
AMDlabの秋山です。

最近、Dynamoを使用したGenerativeDesignのお話をよくいただくようになりました。
Dynamoのみで完結することもできますが、プログラムの内容によっては、自分でコードを書く必要がでてきます。

今回から数回にわたってDynamoとPythonの始め方に関する記事を投稿していきますので、一緒にスキルアップしていきましょう。

Pythonを使用して独自のカスタムコンポーネントを作成する4つのメリット

  1. グラフの簡潔化
    ビジュアルプログラミングのデメリットのひとつに、プログラムが複雑になるほど、グラフが読み取りにくくなってしまうことが挙げられます。
    ノードにつながるワイヤーもどこにつながっているか分かりにくくなり、大変です。
    複数のノードをひとつのPythonスクリプトノードにすることでグラフが簡潔になります。
  2. APIの利用
    Pythonスクリプト上で外部のAPIを利用することが可能になります。
  3. 複雑なプログラムの作成
    ビジュアルプログラミングで表現することが難しい、for文のようなループ処理を記述することができるようになり、プログラムに幅を持たせることができます。
  4. プログラムの保守
    Dynamo上の便利なカスタムコンポーネントを使用していても、Dynamoのバージョンが変わってしまうと使用できなくなることもあります。
    外部ライブラリに依存せずとも自分でコードを書き換えてしまえばいいのです。

自分でコードを書くというとハードルが高いように感じられますが、簡単に説明していきますので、最後のシリーズまで目を通していただけると嬉しいです。

Pythonとは

世の中にはたくさんのプログラミング言語が存在します。
その中でも、比較的少ないコードで完結にプログラムを記述できる言語がPythonです。
ライブラリというプログラムをまとめたものを有効に活用することで記述するコードが少なくなります。
ここで簡単にライブラリの構成を説明します。

図から分かるように、ライブラリにはたくさんの関数、モジュールが含まれていますので、ライブラリをインポートする際には、必要な部分だけをインポートすれば良いです。
インポートの仕方も複数あるので、次回以降の記事で説明していこうと思います。

以上のように、既存のライブラリを有効活用して、プログラムを作成できます。
数理計算のライブラリが充実しているため、機械学習の分野でもPythonが多く採用されており、
代表的なライブラリをご紹介しておきます。

 

Dynamo上でPythonを使用するうえで知っておくべき3つの用語

  1. IronPython
    Dynamo上でPythonを使用する際は特に、Pythonにはいくつか種類があることを知っておいてください。
    Cpython:C言語で実装された標準のPython
    Jython:Javaのライブラリを使用することのできるPython
    IronPython:.NET Frameworkのライブラリを使用することのできるC#で実装されたPython
    ほかにもたくさんありますが、IronPythonがDynamo上で使用されるPythonになります。
    .NET Frameworkのライブラリを使用するため、IronPythonを使用しなければいけないのです。※IronPython上では、使用できないPythonライブラリもあるので注意が必要です。またIronPythonはオープンソースであるため開発が遅れていることも注意することのひとつです。
  2. .NET Framework
    .NET Frameworkは、Microsoft社が開発したプログラムを動かすうえで必要な部品のようなものです。
    Microsoft社はご存じのように、WindowsOSを開発した会社です。そのため.NET Frameworkは標準で搭載されています。
    数多くの建築ソフトウェアは.NET Frameworkアプリケーションと呼ばれるものになります。ExcelやWordなども同じです。
    これらは.NET Frameworkが入っているパソコンでのみ動くソフトなので、開発するとなると.NET Frameworkを使用できる言語を探す必要があります。
    .NET Frameworkは、複数のプログラミング言語に対応しており、IronPythonもその一つに含まれます。
  3. RevitAPI
    プログラミングをしているとよく目にするAPI。
    これはApplication Programming Interface(アプリケーションプログラミングインターフェース)の略になります。
    RevitAPIに関しては次回以降の記事で詳しく説明していきますので、現段階では、名前の通りアプリケーションをプログラミングするためのインターフェースととらえてください。
    APIは無数にあり、すべてを頭に入れておくことは難しいです。

    下記のドキュメントから分からないところがあれば検索して参照していくことがAPI理解の一歩になります。
    2021 Developer Guide

今回は、Dynamo×Pythonの背景と導入部分を説明しました。
次回は実際にDynamo上でPythonスクリプトを書いていこうと思います。

 

 

 

 

 

 

 

 

 

 

BIM
Dynamo Revit
Tech
python
ARTICLES