È possibile utilizzare il linguaggio di programmazione Visual Basic (VB.NET) per creare regole iLogic. Le istruzioni condizionali quali If-Then-Else consentono alle regole l'esecuzione di azioni in base a determinati criteri.
Funzionamento di un'istruzione If-Then-Else
Nell'istruzione If-Then-Else viene eseguita una serie di azioni se la condizione è vera, un'altra serie se la condizione è falsa:

(1) Condizione (2) Vero (3) Falso (4) Se la condizione è vera vengono eseguite queste istruzioni (5) Se la condizione è falsa vengono eseguite queste istruzioni
Dopo l'esecuzione delle istruzioni associate alla condizione vera o falsa, il controllo del programma riprende con l'istruzione successiva.
In iLogic è possibile utilizzare il modulo blocco o il modulo a più linee multilinea per implementare la struttura If-Then-Else.
If size = “small” Then length = 6.0 Else length = 12 End If
Se l'espressione condizionale è vera, vengono eseguite le istruzioni tra le parole chiave Then ed Else. Le istruzioni tra le parole chiave Else ed End If vengono ignorate. Se l'espressione condizionale è false, le istruzioni tra le parole chiave Else ed End If vengono eseguite. Le istruzioni tra le parole chiave Then ed Else vengono ignorate. In ogni caso, il controllo del programma riprende con l'istruzione successiva all'istruzione End If.
Funzionamento di un'istruzione If-Then
In un'istruzione If-Then-Else, viene eseguita un'azione indipendentemente dal fatto che la condizione sia true o false. Tuttavia, talvolta è necessario eseguire un'azione o una serie di azioni solo se una condizione è true, e nessuna azione se la condizione è false:

(1) Condizione (2) Vero (3) Se la condizione è vera, eseguire queste istruzioni (4) Falso
È possibile omettere la parte Else della struttura If del blocco. Ad esempio:
If size = “small” Then length = 6.0 End If
Utilizzo delle serie vuote o nulle
È inoltre possibile utilizzare serie di azioni null o empty nel modulo blocco dell'istruzione If. È possibile, ad esempio, precisare "se la condizione è vera, non eseguire alcuna operazione - altrimenti, eseguire un'operazione", come nel blocco seguente:
If length > 20 Then
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in. ", "Title")
End IfQuando si utilizza un gruppo di azioni vuoto, migliorare la leggibilità includendo un commento nella posizione prevista per le istruzioni true:
Utilizzo di un'istruzione If come istruzione a riga singola
Sebbene il modulo del blocco dell'istruzione If migliori la leggibilità, è possibile scrivere l'istruzione If come riga singola. In questo formato, l'istruzione End If non viene utilizzata.
If length < 20 Then MessageBox.Show("Length is Too Short", "Title")
If mass < 1000 Then length =20 Else length =40Utilizzo di variabili booleane nelle espressioni condizionali
Una variabile booleana, che può contenere il valore True o False, è utilizzabile in qualsiasi punto in cui è presente un'espressione relazionale.
Ad esempio, le seguenti due istruzioni sono equivalenti:
If Feature.IsActive("Fillet1") = true Then . . .
If Feature.IsActive("Fillet1") Then . . .Nella seconda istruzione il valore True è implicito.
Analogamente, le due istruzioni seguenti possono essere utilizzate in modo intercambiabile per verificare se una variabile booleana è falsa:
If Feature.IsActive("Fillet1") = false Then . . .
If Not Feature.IsActive("Fillet1") Then . . .Questi esempi mostrano il risultato di una funzione. Altri esempi includono l'utilizzo di un nome parametro come variabile booleana, o l'utilizzo di una variabile locale per contenere un valore booleano.
Informazioni sulla struttura Case
La struttura Case consente di scegliere tra più di due alternative:

(1) Case per il codice operazione alternativa (2) Case "1" (3) Case "2" (4) Case "3" (5) Case Else (6) Operazione alternativa se il codice è ="1" (7) Operazione alternativa se il codice è="2" (8) Operazione alternativa se il codice è="3" (9) Operazione alternativa se il codice non è"1", "2" o "3"
È possibile implementare la struttura Case utilizzando una struttura a blocco esteso If o la struttura dell'istruzione Select Case.
Informazioni su un'istruzione If a blocco esteso (If-Then-ElseIf)
L'istruzione a blocco esteso If utilizza una o più clausole ElseIf nidificate tra la prima clausola If e l'ultima clausola Else. La parola chiave ElseIf è una sola parola.
If material = "Steel" Then density = 0.284 ElseIf material = "Copper" Then density = 0.323 ElseIf material = "Aluminum" Then density = 0.098 End If
In questo formato, il programma esegue le istruzioni associate con la prima espressione condizionale vera trovata. Quindi, il programma passa all'istruzione successiva all'istruzione End If. Utilizzare l'ultima istruzione Else per intercettare gli errori che si verificano quando vengono rilevate condizioni impreviste che non corrispondono a condizioni If o ElseIf precedenti.
L'utilizzo di ElseIf elimina la necessità di codificare più istruzioni End If in una struttura If nidificata. A scopo di confronto, l'esempio precedente può anche essere scritto nel modo seguente:
If material = "Steel" Then density = 0.284 Else If material = "Copper" Then density = 0.323 Else If material = "Aluminum" Then density = 0.098 End If End If End If
Utilizzo di un'istruzione Select Case
Select Case è un'istruzione particolarmente efficace con varie opzioni.
Select Case material
Case “Steel”
density =0.284
Case “ Copper”
density = 0.323
Case “Aluminum”
density = 0.098
Case Else
density = 0
MessageBox.Show("not a valid material" , "Warning")
End SelectIn questo formato, l'istruzione Select Case consente di specificare un'espressione di prova. Ogni clausola Case successiva specifica una o più espressioni da confrontare con l'espressione di prova. Vengono eseguite le azioni associate alla prima clausola Case contenente un'espressione che soddisfa l'espressione di prova. Il controllo del programma si ramifica quindi nell'istruzione successiva all'istruzione End Select. L'ultima clausola Case Else intercetta gli errori che si verificano quando un valore non previsto dell'espressione di prova non corrisponde all'elenco di espressioni di nessuna delle clausole Case precedenti.
L'espressione di prova successiva a Select Case può essere un'espressione più complessa, ad esempio:
Select Case radius +1 Select Case MinOfMany(x,y,z)
L'elenco di espressioni in una clausola Case può corrispondere ad uno dei seguenti formati:
Select Case width
Case 1,2,3,4,5
MessageBox.Show("Small Plate", "Size")
Case 6 to 15
MessageBox.Show("Medium Plate", "Size")
Case Is > 15
MessageBox.Show("Large Plate", "Size")
End SelectL'istruzione Select Case non richiede un'associazione con un'espressione o variabile specifica. Può essere utilizzata per valutare qualsiasi numero di condizioni, utilizzando il seguente formato:
Select Case True Case length >= 10 width = length -1 thickness = length/5 Case length < 10 width = length - .75 thickness = length/6 End Select
Esecuzione le azioni alternative per le condizioni vere o false
Quando si immettono le azioni da eseguire, è possibile utilizzare le opzioni disponibili nell'area Frammenti per inserire una funzione in corrispondenza della posizione del cursore. È quindi possibile aggiungere gli argomenti appropriati per la funzione.
Esecuzione dell'azione solo se la condizione è vera
Quando si immette l'azione da eseguire, utilizzare le opzioni nell'area Frammenti per inserire una funzione in corrispondenza della posizione del cursore. È quindi possibile aggiungere gli argomenti appropriati per la funzione.
Nessuna operazione in corrispondenza di una condizione
Quando si immette l'azione da eseguire, utilizzare le opzioni nell'area Frammenti per inserire una funzione in corrispondenza della posizione del cursore. È quindi possibile aggiungere gli argomenti appropriati per la funzione.
Esecuzione di azioni alternative per più di due condizioni
Quando si immettono le azioni da eseguire, utilizzare le opzioni nell'area Frammenti per inserire una funzione in corrispondenza della posizione del cursore. È quindi possibile aggiungere gli argomenti appropriati per la funzione.
Esecuzione di operazioni alternative in base al confronto mediante Case
Select Case <test expression>Case <expression list 1><statement list 1>Case <expression list 2><statement list 2>Case Else<statement list n>End Select
Quando si immettono le azioni da eseguire, utilizzare le opzioni nell'area Frammenti per inserire una funzione in corrispondenza della posizione del cursore. È quindi possibile aggiungere gli argomenti appropriati per la funzione.
If <conditional expression> Then<one or more statements to be executed if condition is true>Else<one or more statements to be executed if condition is false>End If
If <conditional expression> Then<one or more statements to be executed if condition is true>End If
If <conditional expression> Then ‘do nothingElse <one or more statements to be executed if condition is false>End If
Istruzione If come riga singola
If <conditional expression> Then <true statement> [Else <false statement>]Formato blocco If esteso (If-Then-ElseIf)
If <conditional expression 1> Then<one or more statements to be executed if condition 1 is true>ElseIf <conditional expression 2> Then<one or more statements to be executed if condition 2 is true>... ElseIf <conditional expression n> Then <one or more statements to be executed if condition n is true> Else <one or more statements to be executed if none of the above conditions is true> End If
Select Case <test expression>Case <expression list 1><statement list 1>Case <expression list 2><statement list 2>Case Else<statement list n>End Select