APIの構造と階層の内容

Autodesk Simulation CFD のスクリプト言語は、多くのプログラミング言語と共通の要素を使用しています。この言語は一連のクラスに基づいています。各クラスにはそれぞれのプロパティとメソッドがあります。PythonはC++と概念的に似ていますが、独自の構文上、形式上の要素も持っています。

このトピックでは、Autodesk Simulation CFD APIを使用する上で重要なPythonの概念の一部を紹介します。

Python に関する一般的リソースとしては、Python Programming Language 公式 Web サイト http://python.org/ を参照してください。

モジュール

最上位の API 構造は Autodesk Simulation CFD ワークフローに直接関連しています。機能は4つのモジュールに分かれています:

DC

DSE

結果

設定

モジュール内の機能にアクセスするには、スクリプトの最初に呼び出す必要があります。必要なすべての機能が使用できるよう、すべてのモジュールを初期化することをお勧めします。これを行うには、スクリプトの最初に以下の行を含めてください。

from CFD import Setup

from CFD import Results

from CFD import DSE

from CFD import DC

API階層

各モジュールには一連のクラスが含まれています。各クラスにはメソッドが含まれています。

クラスの構造

APIクラスには特定の階層構造があります。Objectはトップレベルクラスであり、その下にいくつかのクラスを持っています。ContainerおよびSummaryObjectクラスもそれぞれの子クラスを持っています。クラス全体の構造は以下の通りです:

特定の静的関数を呼び出すには、以下の構造を使用します:

Module.class.function

たとえば、現在のデザインスタディとしてstudyという名前の変数を定義するには、次のコマンドを使用します:

study = Setup.DesignStudy.Create()

これはCreate関数を呼び出します。これはSetupモジュール内のDesignStudyクラス内にあります。

注: Object クラス(Setup モジュールに属する)には、他のモジュールに属するエンティティを持ったクラスも含まれている点に注意してください。クラスとオブジェクトは異なる事を念頭においてください。CutPlaneクラスはObjectクラスの下に表示されています。これによりObjectクラスの全てのメンバを継承することが可能です。しかしこの場合のcutplaneは抽象化であり、あるタイプのエンティティを指すものです。モデル内で断面が作成されると、それは実際のオブジェクトであり、抽象化ではありません。従って、これはResultsモジュールの一部です。

継承

API内のクラスは特定の機能を可能にするメンバ関数を含んでいます。サブクラスも独自のメンバ関数を含みますが、親クラスのメンバ関数も継承します。

この概念を継承と呼びます。これはAPIにおいて重要な概念です。

たとえば、SummaryPartクラスにはそのメンバが含まれるのに加えて、SummaryObjectクラス、およびObjectクラスに含まれるメンバも継承されます。

あるクラスからアクセス可能なすべてのメンバを確認するには、そのクラスのAPIプログラミングリファレンスページのList of all membersをクリックしてください。SummaryPartクラスのリストは以下の通りです:

注: 子クラス独自のメンバは親クラスにより所有されません。

関数タイプ

ほとんどのクラスが所有する2つの主要なタイプの関数は静的公開メンバ関数および公開メンバ関数です。

静的公開メンバ関数

静的公開メンバ関数は、クラスの特定のインスタンスが現在存在していない場合に使用できます。多くの静的公開メンバ関数はエンティティを作成するのに使用されます。

たとえば、DesignStudyクラスのCreateは現在のデザインスタディを作成または取得するための静的メンバ関数です。デザインスタディオブジェクトを取得するコマンドは以下の通りです:

Setup.DesignStudy.Create()

公開メンバ関数

公開メンバ関数は既に存在する実際のオブジェクトに対してアクションを実行します。

たとえば、DesignStudyクラスのSaveは既に存在するデザインスタディに対する公開メンバ関数です。(存在しないデザインスタディを保存することはできません。)

関連トピック

アプリケーション プログラミング インタフェース(API)

API プログラミング リファレンス

スクリプト エディタ