このデザインには、インスタンス化できるデザインを作成するのに必要な最小のルールのセットが含まれています。直接インスタンス化する新しいデザインには、最小限として BaseDesign を含める必要があります。直接インスタンス化することが意図されていない Mixin のデザインには、BaseDesign を含める必要はありません。ただし、これらをミックスするデザインには、最終的に BaseDesign を含める必要があります。BaseDesign のみをミックスして BasePart をミックスしないデザインは、通常 Intent によって表示できません。すべてのデザインに対するルールをグローバルに追加または変更するには、BaseDesignModifier デザインをオーバーライドすることができます。デザインのオーバーライドは、BaseDesignModifier という名前で新しいデザインを作成し、プロジェクト ライブラリ、またはカーネル ライブラリよりも優先される別のライブラリに配置することで実行できます。次に新しいルールをこのデザインに追加することができます。
BaseDesignModifier
| Name | [タイプ] | 説明 |
|---|---|---|
| givenName | すべて | パーツ参照に使用する代替名です。指定する場合、givenName はすべての兄弟間で一意である必要があります。givenName は名前または文字列のどちらかとして指定することができ、(displayName も指定されていない限り)アセンブリ ツリーに表示されます。 注: givenName でパーツを参照するために、EnableHasChildNamed を 1 に設定する必要があります。
|
| displayName | 文字列 | パーツの名前は、アセンブリ ツリーに実際に表示されます。この名前は参照で代替名として使用することはできません。既定は partName です。 |
| Name | [タイプ] | 説明 |
|---|---|---|
| self | パーツ | デザインの現在のパーツを指定します。 |
| children | list | 階層の次の下位レベルを表すパーツの一覧を返します。このルールは、必要に応じて children()関数を使用してもしなくてもよく、より高いレベルのデザインによってオーバーライドすることができます。 |
| isNull? | boolean | これは NullDesign のインスタンスである場合は True を返します。 |
| refChain | 文字列 | パーツへの参照チェーンを返します。 |
| ruleName | name | パーツの名前を返します。これは、givenName または displayName が指定される場合はアセンブリ ツリーに表示される名前と異なることがあります。 |
| designName | name | パーツのデザインの名前です。この関数は、mixin デザインではなく、階層内の最上位のデザインを返します。 |
| partParameters | list | 指定されたパラメータの名前の一覧を返します。 |
| first? | boolean | これが子の一覧の最後のメンバである場合は True を返します。 |
| childListLength | integer | 子の一覧のメンバ数を返します。子が子の一覧のメンバでない場合、NoValue が返されます。 |
| isChildListMember? | boolean | これが子の一覧のメンバである場合は True を返します。 |
| last? | boolean | これが子の一覧の最後のメンバである場合は True を返します。 |
| first | パーツ | 子の一覧の最初のメンバです。パーツが子の一覧のメンバでない場合、NoValue が返されます。 |
| previous | パーツ | 子の一覧の前のメンバです(例: child.index - 1)。パーツが子の一覧のメンバでない場合、または現在の子が子の一覧の最初のメンバの場合、NoValue が返されます。 |
| cyclicPrevious | パーツ | 子の一覧の前のメンバを返します。現在の子が子の一覧の最初のメンバである場合、子の一覧の最後のメンバが返されます。パーツが子の一覧のメンバでない場合、NoValue が返されます。 |
| cyclicNext | パーツ | 子の一覧の次のメンバを返します。現在の子が子の一覧の最後のメンバである場合、子の一覧の最初のメンバが返されます。パーツが子の一覧のメンバでない場合、NoValue が返されます。 |
| next | パーツ | 子の一覧の次のメンバです(例: child.index + 1)。パーツが子の一覧のメンバでない場合、または現在の子が子の一覧の最後のメンバの場合、NoValue が返されます。 |
| last | パーツ | 子の一覧の最後のメンバです。パーツが子の一覧のメンバでない場合、NoValue が返されます。 |
hasRule?( ruleName As Name ) As Booleanこのデザインに ruleName という名前のルールが含まれているかどうかを判定するには、このメソッドを使用します。
isBound?( ruleName As Name ) As Booleanデザインのルール、ruleName が評価されたかどうかを確認するには、このメソッドを使用します。
isKindOf?( designName As Name ) As Booleanこのパーツのデザインに、designName デザインが混ざっていないかどうかを判定するには、この方法をメソッドします。
safeRef(ruleName As Any, Optional onErrorValue As Any = NoValue) As AnyruleName を安全に参照するには、このメソッドを使用します。エラーがある場合は onErrorValue が返されます。既定では NoValue です。
safeRefMethod(ruleName As Any, args As List, Optional onErrorValue As Any = NoValue) As AnyruleName という名前のメソッドを安全に参照するには、このメソッドを使用します。引数一覧の順序で引数を渡します。エラーがある場合は onErrorValue が返されます。既定では NoValue です。
| 名前: | BaseDesign_Ex01 | |
| デザイン: | acDrawingDocument | |
| [名前] | [タイプ] | 式 |
| コスト | 数 |
If me.isBound?(:costCalculated) Then costCalculated Else costEstimated End If |
| costEstimated | 数 | 5.0 |
| costCalculated | 数 | 5.17 |
テキスト ファイルにパーツ パラメータを書き込みます。
| 名前: | BaseDesign_Ex02 | |
| デザイン: | acDrawingDocument | |
| [名前] | [タイプ] | 式 |
| childParams | すべて |
Dim f As User = openFile("C:\My Documents\Child part parameters.txt", :Write)
Write("Child part parameters:" & newline(), f)
For Each prt In children
Write(" " & prt.designName & newline(), f)
Dim params As List = prt.partParameters
For Each param In params
Dim val As String = stringValue(ref(prt,param))
Write(" " & param & " = " & val & newline(), f)
Next param
Next prt
closeFile(f)
|
| 子の名前: | block_1 | |
| 子のデザイン: | :Block | |
| [名前] | [タイプ] | 指定値 |
| height | 数 | 42 |
| 長さ | 数 | 16 |
| 幅 | 数 | 10 |
| v000 | 点 | Point(0.0, 0.0, 0.0) |
| 子の名前: | block_2 | |
| 子のデザイン: | :Block | |
| [名前] | [タイプ] | 指定値 |
| height | 数 | 42 |
| 長さ | 数 | 16 |
| 幅 | 数 | 10 |
| v000 | 点 | Point(12.0, 2.0, 0.0) |
| 子の名前: | block_3 | |
| 子のデザイン: | :Block | |
| [名前] | [タイプ] | 指定値 |
| height | 数 | 42 |
| 長さ | 数 | 16 |
| 幅 | 数 | 10 |
| v000 | 点 | Point(24.0, 4.0, 0.0) |