BaseDesign

概要

このデザインには、インスタンス化できるデザインを作成するのに必要な最小のルールのセットが含まれています。直接インスタンス化する新しいデザインには、最小限として BaseDesign を含める必要があります。直接インスタンス化することが意図されていない Mixin のデザインには、BaseDesign を含める必要はありません。ただし、これらをミックスするデザインには、最終的に BaseDesign を含める必要があります。BaseDesign のみをミックスして BasePart をミックスしないデザインは、通常 Intent によって表示できません。すべてのデザインに対するルールをグローバルに追加または変更するには、BaseDesignModifier デザインをオーバーライドすることができます。デザインのオーバーライドは、BaseDesignModifier という名前で新しいデザインを作成し、プロジェクト ライブラリ、またはカーネル ライブラリよりも優先される別のライブラリに配置することで実行できます。次に新しいルールをこのデザインに追加することができます。

Mixin

BaseDesignModifier

[パラメータ]

Name [タイプ] 説明
givenName すべて パーツ参照に使用する代替名です。指定する場合、givenName はすべての兄弟間で一意である必要があります。givenName は名前または文字列のどちらかとして指定することができ、(displayName も指定されていない限り)アセンブリ ツリーに表示されます。
注: givenName でパーツを参照するために、EnableHasChildNamed を 1 に設定する必要があります。
displayName 文字列 パーツの名前は、アセンブリ ツリーに実際に表示されます。この名前は参照で代替名として使用することはできません。既定は partName です。

ルール

Name [タイプ] 説明
self パーツ デザインの現在のパーツを指定します。
children list 階層の次の下位レベルを表すパーツ一覧を返します。このルールは、必要に応じて children()関数を使用してもしなくてもよく、より高いレベルのデザインによってオーバーライドすることができます。
isNull? ブーリアン演算 これは NullDesign のインスタンスである場合は True を返します。
refChain 文字列 パーツへの参照チェーンを返します。
ruleName name パーツ名前を返します。これは、givenName または displayName が指定される場合はアセンブリ ツリーに表示される名前と異なることがあります。
designName name パーツのデザインの名前です。この関数は、mixin デザインではなく、階層内の最上位のデザインを返します。
partParameters list 指定されたパラメータの名前の一覧を返します。
first? ブーリアン演算 これが子の一覧の最後のメンバである場合は True を返します。
childListLength 整数 子の一覧のメンバ数を返します。子の一覧のメンバでない場合、NoValue が返されます。
isChildListMember? ブーリアン演算 これが子の一覧のメンバである場合は True を返します。
last? ブーリアン演算 これが子の一覧の最後のメンバである場合は 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 Any
ruleName を安全に参照するには、このメソッドを使用します。エラーがある場合は onErrorValue が返されます。既定では NoValue です。
safeRefMethod(ruleName As Any, args As List, Optional onErrorValue As Any = NoValue) As Any
ruleName という名前のメソッドを安全に参照するには、このメソッドを使用します。引数一覧の順序で引数を渡します。エラーがある場合は onErrorValue が返されます。既定では NoValue です。

例 1

名前: BaseDesign_Ex01
Design: acDrawingDocument
[名前] [タイプ]
コスト 数値
If me.isBound?(:costCalculated) Then 
	 costCalculated 
Else 
  costEstimated 
End If
costEstimated 5.0
costCalculated 5.17

例 2

テキスト ファイルにパーツ パラメータを書き込みます。

名前: BaseDesign_Ex02
Design: 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)