Vault 2026 対応版 トレーニングガイドを発行しました! 詳しくはこちら

iLogic コード ブロック

iLogic コード ブロック

~ Inventor 2027 新機能 iLogic コード ブロック をさわってみた!~

今回のテーマは「iLogic コード ブロック」
iLogic のコード ブロック は Inventor 2027 の新機能で、処理を「意味ごとのまとまり」に分けて視覚的に組み立てられる機能です。従来のようにすべてを VB コードで書くのではなく、条件分岐や繰り返し処理および変数設定などをブロックとして配置し、流れを直感的に構築できます。
各ブロックは役割がはっきりしているため「どこで何をしているのか」が一目で分かり、初心者でも処理の流れを追いやすいのが特徴です。また、ブロック単位で追加・削除・並べ替えができるので、修正や試行錯誤もしやすくなります。
そこで今回は、「テキスト」(通常の iLogic ルール エディタで作成したコード)で作成したルールを題材に「コード ブロック」で作成する方法をご紹介します。

iLogic コード ブロックは Inventor 2027 で新しく追加された機能です。まだ公開されている情報が少ないため、ここで紹介する内容は私が個人的に検証したものになります。あくまで参考情報としてお読みください。

1. パラメータ値の入力制限による条件分岐ルールの作成例
iLogic テキスト

以下は、通常の iLogic ルール エディタで作成したコードです。


' 幅の制限
If Width < 20
  Width = 20
  MessageBox.Show("このパラメータの最小値: " & Width & vbCr & "値は自動的に最小値に修正されます。", "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Width > 100 Then
  Width = 100
  MessageBox.Show("このパラメータの最大値: " & Width & vbCr & "値は自動的に最大値に修正されます。", "最大値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
iLogic コード ブロック

以下に、iLogic コード ブロックで作成する流れをご説明します。

動画はこちら

下のボタンから、必要事項をご記入いただくと動画でも見ることができます。

動画の手順は、以降に記載した手順と一部異なる部分がございます。予めご了承ください。

STEP
コメントの入力
手順
[作業キャンバス]に配置

'ここにコメント
手順
コメントを入力:「幅の制限」

' 幅の制限
STEP
分岐の定義
手順
選択した分岐ブロックをドラッグし[コメント]の下にドロップ

' 幅の制限
If False Then
End If
手順
[歯車]アイコンをクリックして追加メソッドを表示
手順
追加メソッドをドラッグし[そうでなくもし]を [もし]の下にドロップ

' 幅の制限
If False Then
ElseIf False Then
End If
STEP
[分岐.もし]の条件定義

論理ブロック

手順
選択した論理ブロックをドラッグし[分岐.もし]の右にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
' 幅の制限
If 0 = 0 Then
ElseIf False Then
End If
手順
比較演算子を変更:「<」(より小さい)

RuntimeUtils.AddGetParameterTriggers({Width})
' 幅の制限
If 0 < 0 Then
ElseIf False Then
End If

条件左側:パラメータ ブロック

手順
選択したパラメータ ブロックをドラッグし[条件左側]にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
' 幅の制限
If Parameter() < 0 Then
ElseIf False Then
End If
手順
パラメータを設定:「Width」

RuntimeUtils.AddGetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 0 Then
ElseIf False Then
End If

条件右側:数値ブロック

手順
選択した数値ブロックをドラッグし[条件右側]にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 123 Then
ElseIf False Then
End If
手順
値を変更:「20」

RuntimeUtils.AddGetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
ElseIf False Then
End If
STEP
[分岐.もし]の実行定義 1段目

パラメータ ブロック

手順
選択したパラメータ ブロックをドラッグし[分岐.もし.実行]の右にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter() =
ElseIf False Then
End If
手順
パラメータを設定:「Width」

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 1
ElseIf False Then
End If
手順
値を変更:「20」

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
ElseIf False Then
End If
STEP
[分岐.もし]の実行定義 2段目

メッセージ ボックス ブロック

手順
選択したメッセージ ボックス ブロックをドラッグし、先ほどのパラメータ設定ブロックの下にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show("メッセージ", "タイトル")
ElseIf False Then
End If
手順
[タイトル]を入力:「最小値ルール」

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show("メッセージ", "最小値ルール")
ElseIf False Then
End If

メッセージ ボックス ブロックテキスト結合ブロック

手順
選択したテキスト ブロックを[メッセージ]欄にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {}), "最小値ルール")
ElseIf False Then
End If

メッセージ ボックス ブロックテキスト結合ブロックテキスト ブロック

手順
選択したテキスト ブロックを[テキストを結合して作成:]の 1段目 にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {""}), "最小値ルール")
ElseIf False Then
End If
手順
テキストを入力:「このパラメータの最小値」

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値"}), "最小値ルール")
ElseIf False Then
End If

メッセージ ボックス ブロックテキスト結合ブロックパラメータ取得ブロック

手順
分岐内に配置したパラメータ取得ブロックを右クリック▶[複製]
手順
(複製されたパラメータ取得ブロック)

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値"}), "最小値ルール")
ElseIf False Then
End If
Parameter.ValueForEquals("Width")
手順
複製したブロックを[テキストを結合して作成:]の 2段目 にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width"))}), "最小値ルール")
ElseIf False Then
End If

VB コード ブロック

iLogic のコード ブロックでは、文字の途中で改行する手段がないため VB コードを直接手入力して対応します。

手順
選択した VB コード ブロックを[コメント ブロック]と[分岐ブロック]の 間にドロップ

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
ここにコーディング 
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width"))}), "最小値ルール")
ElseIf False Then
End If
手順
コーディングを入力:「crlf = vbCrLf」
crlfこの iLogic ルール内の変数
vbCrLfVB で使用される、テキスト内で改行を行うための定数

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width"))}), "最小値ルール")
ElseIf False Then
End If

タイプ設定変数

VB コードで使用した変数(crlf)を、コード ブロックの変数として定義ます。

手順
変数を作成
①[名前]を入力:「crlf」
②[タイプ]を選択:「テキスト」
③[OK]をクリック
手順
(指定した変数ブロックが作成される)

メッセージ ボックス ブロックテキスト結合ブロック変数ブロック

手順
作成した変数ブロックを[テキストを結合して作成:]の 3段目 にドロップ

ドラッグしたブロックを 2段目ブロックの下あたりにもっていくと 自動的に 3段目 が追加されるので、そこにドロップ


Dim crlf As String

RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf}), "最小値ルール")
ElseIf False Then
End If

メッセージ ボックス ブロックテキスト結合ブロックテキスト ブロック

手順
選択したテキスト ブロックを[テキストを結合して作成:]の 4段目 にドロップ

ドラッグしたブロックを 3段目ブロックの下あたりにもっていくと 自動的に 4段目 が追加されるので、そこにドロップ


Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, ""}), "最小値ルール")
ElseIf False Then
End If
手順
テキストを入力:「値は自動的に最小値に修正されます。」

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール")
ElseIf False Then
End If

メッセージ ボックス ブロックボタンとアイコン

手順
メッセージ ボックスのボタンを設定
① メッセージ ボックス ブロックの一番右にある[+]をクリック
② ボタン選択:[OK]

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK)
ElseIf False Then
End If
手順
メッセージボックスのアイコンを設定
① メッセージ ボックス ブロックの一番右にある[+]をクリック
② アイコン選択:「エラー」

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf False Then
End If
STEP
[分岐.そうでなくもし]の条件定義
手順
[分岐.もし]の条件ブロックを右クリック▶[複製]
手順
(複製されたブロック)

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf False Then
End If

Parameter.ValueForEquals("Width") < 20
手順
複製したブロックをドラッグし[条件.そうでなくもし]の右にドロップ

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") < 20 Then
End If
手順
比較演算子を変更:「>」(より大きい)

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 20 Then
End If
手順
値を変更:「100」

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
End If
STEP
[分岐.そうでなくもし]の実行定義 1段目
手順
[分岐.もし.実行]のパラメータ設定ブロックを右クリック▶[複製]
手順
(複製されたパラメータ設定ブロック)

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
End If
Parameter("Width") = 20
手順
複製したパラメータ設定ブロックをドラッグし[分岐.そうでなくもし.実行]の右にドロップ

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
  Parameter("Width") = 20
End If
手順
値を変更:「100」

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
  Parameter("Width") = 100
End If
STEP
[分岐.そうでなくもし]の実行定義 2段目
手順
[分岐.もし.実行]のメッセージ ボックス ブロックを右クリック▶[複製]
手順
(複製されたメッセージ ボックス ブロック)

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
  Parameter("Width") = 100
End If
MessageBox.Show(String.Join("", {"このパラメータの最小値", Parameter.ValueForEquals("Width"), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
手順
複製したメッセージ ブロックをドラッグし[条件.そうでなくもし.実行]のパラメータ設定ブロックの下にドロップ

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
  Parameter("Width") = 100
  MessageBox.Show(String.Join("", {"このパラメータの最小値", Parameter.ValueForEquals("Width"), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
手順
複製したメッセージ ブロックの文字列中の「最小」を「最大」に変更(3カ所)

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
  Parameter("Width") = 100
  MessageBox.Show(String.Join("", {"このパラメータの最大値", Parameter.ValueForEquals("Width"), crlf, "値は自動的に最大値に修正されます。"}), "最大値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
STEP
不具合対応

複写したメッセージ ブロックにおいて、「StringRuntime.ToString」が実装されていないという不具合が確認されています。
この不具合を解消するには、まずルールを一度保存して閉じてください。その後、「ルールを編集」から再度ルールを開くことで、正常な状態に修正されます。


Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値: ", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
  Parameter("Width") = 100
  MessageBox.Show(String.Join("", {"このパラメータの最大値: ", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最大値に修正されます。"}), "最大値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
2. 「iLogic テキスト」と「iLogic コード ブロック」の比較

上記で作成した「パラメータ値の入力制限による条件分岐コード」を例に比較しました。

比較項目iLogic テキストiLogic コード ブロック
コード<下記参照><下記参照>
コードの読みやすさ 読みやすい
読みやすくコーディングすることが可能
比較的読みにくい
コードの直接編集 不可
必ずコード ブロックを編集する必要がある
コード ブロック 不可
ウィザード ある
[メッセージ ボックス]や[パラメータ制限]など
ない
コード ブロックはウィザード不要で構築する形式
作成時間 慣れると最短
ウィザードなら誰でも最短
試行錯誤しやすいがやや時間がかかる場合あり
実行結果違いなし
実行速度違いなし(体感)
iLogic テキストで作成したコード

' 幅の制限
If Width < 20
  Width = 20
  MessageBox.Show("このパラメータの最小値: " & Width & vbCr & "値は自動的に最小値に修正されます。", "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Width > 100 Then
  Width = 100
  MessageBox.Show("このパラメータの最大値: " & Width & vbCr & "値は自動的に最大値に修正されます。", "最大値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
iLogic コード ブロックで作成したコード

Dim crlf As String


RuntimeUtils.AddGetParameterTriggers({Width})
RuntimeUtils.AddSetParameterTriggers({Width})
' 幅の制限
crlf = vbCrLf
If Parameter.ValueForEquals("Width") < 20 Then
  Parameter("Width") = 20
  MessageBox.Show(String.Join("", {"このパラメータの最小値: ", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最小値に修正されます。"}), "最小値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Parameter.ValueForEquals("Width") > 100 Then
  Parameter("Width") = 100
  MessageBox.Show(String.Join("", {"このパラメータの最大値: ", StringRuntime.ToString(Parameter.ValueForEquals("Width")), crlf, "値は自動的に最大値に修正されます。"}), "最大値ルール", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
3. まとめ

iLogicの「テキスト」と「コード ブロック」は、どちらも同じ処理を実現できますが、使い勝手に違いがあります。

テキストは自由度が高く、慣れてくると効率よくコーディングできるのが強みです。一方で、コードの理解にはある程度の知識が必要になります。

コード ブロックは、処理の流れを視覚的に組み立てられるため、初心者でも直感的に理解しやすいのが特徴です。ただし、細かい制御や高度な処理には向かない場合があります。

そのため、
 「簡単な処理や理解重視ならコード ブロック」
 「柔軟な制御や効率重視ならテキスト」

と使い分けるのがおすすめです。

現バージョン(Inventor 2027)では、コード ブロックで全体像を作り、必要に応じてテキスト(VBコード)で補う使い方が実用的と言えそうです。

いずれにしても、コード ブロックはまだ登場したばかりの機能のため、今後の Autodesk によるブラッシュアップに期待したいところです。

この記事を書いた人

現場の困りごとを一緒に解決することが好きで、Autodesk製品の導入やカスタマイズをサポートしています。
仕事のモットーは「難しいことをわかりやすく」。専門用語をできるだけ噛み砕いて、誰でも使いやすい仕組みづくりを心がけています。
最近では、設計業務をもっとラクにする方法や、ちょっとした工夫で効率が上がるアイデアを日々考えています。