Definizione dei profili
I profili (<profile>) sono insiemi opzionali di regole definite all'interno di uno standard per controllare la visualizzazione degli elementi in una figura. È possibile definire più profili all'interno dello standard che gli utenti possono applicare a una figura. I profili controllano l'aspetto dei dati, ad esempio il colore e lo spessore della linea, nonché la visibilità del contenuto aggiunto dall'utente. Le regole vengono applicate nell'ordine in cui compaiono nel profilo.
La tabella riportata di seguito visualizza gli elementi definibili in base alle regole del profilo e le caratteristiche che è necessario definire.
Elemento
Regole incluse
Componenti
Stile linea
Corpo della linea
Colore linea
Colore riempimento
Pin
Stile linea
Corpo della linea
Colore linea
Colore riempimento
Fili
Stile linea
Corpo della linea
Motivo o colore della linea
Arterie
Stile linea
Corpo della linea
Colore linea
Cavi
Stile linea
Corpo della linea
Colore linea
In un profilo schema è possibile definire le caratteristiche seguenti.
Nome profilo (obbligatorio)
rules - Definire l'insieme di regole contenute in un profilo. Le regole schema possono contenere un argomento o nessun argomento <if> ed esattamente un argomento <then>.
<rule type="schematics">
L'esistenza di un'istruzione <if> è opzionale. Se <if> non è definito, <then> si applica a tutti gli elementi. Le condizioni <if> possono essere combinate con tag <and|or|not> booleani. In caso contrario, viene applicato <and> per tutte le condizioni in <if>.
In un argomento è possibile includere i tipi di condizione riportati di seguito.
Argomenti
Descrizione
item
Imposta l'elemento a cui viene applicata la condizione.
type
Definisce il tipo di elemento. È possibile utilizzare regexpr se regexpr=true (opzionale).
name
Definisce il nome dell'elemento. È possibile utilizzare regexpr se regexpr=true (opzionale).
regexpr
Se impostato su true, è possibile utilizzare espressioni regolari nelle condizioni.
equal
Se impostato su true, i valori degli argomenti (type/name) devono corrispondere affinché la condizione sia true.
caseins
Se impostato su true, nella condizione viene fatta la distinzione tra maiuscole e minuscole.
Di seguito viene illustrato un esempio di una condizione applicata a elementi.
<item type="co*" name="*1*" regexpr="true" equal="true" caseins="true"/>
<attribute> - Imposta la condizione che viene applicata agli attributi degli elementi
Argomenti attribute
Descrizione
name
Nome dell'attributo. È possibile utilizzare regexpr se regexpr=true (opzionale).
value
Valore dell'attributo. È possibile utilizzare regexpr se regexpr=true (opzionale).
equal
Se impostato su true, i valori degli argomenti (type/name) devono corrispondere affinché la condizione sia true.
regexpr
Utilizzare espressioni regolari nella condizione.
caseins
Distinzione tra maiuscole e minuscole se l'istruzione è true.
Di seguito viene illustrato un esempio di una condizione applicata agli attributi degli elementi.
<attribute name="name" value="value" regexpr="true"
equal="true" caseins="true"/>
then - A una regola deve essere associato un argomento then. Aggiungere l'argomento solo se si desidera applicare la regola. Contiene tutti gli elementi a cui si applica la regola.
bgcolor - Imposta il colore di sfondo della figura. Da utilizzare solo in presenza di una condizione vuota.
<bgcolor></bgcolor>
line - Imposta lo stile della linea (opzionale).
argomenti dello stile linea
Descrizione
style
Seleziona lo stile della linea. Ad esempio, multicolore, continua, tratteggiata e punteggiata.
Il valore di default è solid.
color
Imposta il colore della linea.
weight
Imposta la larghezza della linea.
spacing
Imposta lo spazio tra i punti dello stile punteggiato.
Il valore di default è 0.5 mm.
pattern
Descrive il motivo dello stile di linea tratteggiato.
Il valore di default è 0.5 mm.
text_color
Imposta il colore del testo della linea.
border_color
Imposta il colore del bordo della linea.
Il valore di default è black.
border_weight
Imposta la larghezza del bordo della linea in percentuale, dove 100% corrisponde a 1 e 40% a 0.4.
Il valore di default è 0.1.
colorseg
Include:
color - Imposta il colore del segmento.
length - Imposta la lunghezza del segmento.
Si applica solo se multicolor è selezionato.
Ciascun tag colorseg aggiunge un colore allo stile.
Se la lunghezza non è definita, viene utilizzata l'ultima lunghezza.
Se non esistono lunghezze oppure tutte le lunghezze corrispondono a 0, lo spessore del bordo viene utilizzato come lunghezza e, in tal caso, tutti i segmenti colorati sono quadrati.
* 
Il bordo viene applicato solo se sono definiti i seguenti parametri di stile di linea:
border_color o border_weight
solid o multicolor
color o colorseg
Esempi di argomenti line
Linea continua con colore unico:
<then>
<line color="#00ff00" weight="1"/>
</then>
Striscia con bordo:
<then>
<line style="multicolor" text_color="#0000ff" border_color="B900FC" border_weight="0.4" color="#07EDF9" weight="1">
<colorseg color="#07EDF9" length="0.6"/>
<colorseg color="#FFFFFF"/>
</line>
</then>
Punteggiato:
<then>
<line style="dotted" spacing="2" color="#ff0000"/>
</then>
Tratteggiato:
<then>
<line style="dashed" pattern="3.5;1;0.5;1.0;3.5;4;" weight="0.6"/>
</then>
Striscia d'angolo:
<then>
<line style="multicolor" angle="30" color="#888888" weight="0.6">
<colorseg color="#ff0000" length="0.2"/>
<colorseg color="#00ff00" length="0.1"/>
<colorseg color="#0000ff" length="0.3"/>
</line>
</then>
* 
È possibile impostare qualsiasi angolo compreso tra -45 e +45 gradi e anche 90 gradi.
Esempi di stili di punti di intersezione
Questo esempio mostra gli argomenti di quattro stili in cui le linee possono incrociarsi.
Arco con verticale nella parte superiore:
<profile name="Vertical Arc connection crossing style with horizontal segments on top">
<rules>
<rule type="schematics">
<then>
<setting crossing_point_style="arc"/>
</then>
</rule>
</rules>
<rules>
<rule type="schematics">
<then>
<setting top_segment_vertical="true"/>
</then>
</rule>
</rules>
</profile>
Arco con orizzontale nella parte superiore:
<profile name="Arc connection crossing style with horizontal segments on top">
<rules>
<rule type="schematics">
<then>
<setting crossing_point_style="arc"/>
</then>
</rule>
</rules>
<rules>
<rule type="schematics">
<then>
<setting top_segment_vertical="false"/>
</then>
</rule>
</rules>
</profile>
Distanza con orizzontale nella parte superiore:
<profile name="Gap connection crossing style with horizontal segments on top">
<rules>
<rule type="schematics">
<then>
<setting crossing_point_style="gap"/>
</then>
</rule>
</rules>
<rules>
<rule type="schematics">
<then>
<setting top_segment_vertical="false"/>
</then>
</rule>
</rules>
</profile>
Nessuno stile di intersezione di connessione:
<profile name="None connection crossing style with horizontal segments on top">
<rules>
<rule type="schematics">
<then>
<setting crossing_point_style="none"/>
</then>
</rule>
</rules>
<rules>
<rule type="schematics">
<then>
<setting top_segment_vertical="false"/>
</then>
</rule>
</rules>
</profile>
In un profilo 3D è possibile definire le caratteristiche seguenti.
Nome del profilo (obbligatorio), ad esempio
<profile name=
"Yellow color to all figure items">- <start tag>
rules - Definire l'insieme di regole contenute in un profilo. Le regole delle figure 3D possono contenere un argomento o nessun argomento <if> ed esattamente un argomento <then>.
<rule type="3D_Figures">
L'esistenza di un'istruzione <if> è opzionale. Se <if> non è definito, <then> si applica a tutti gli elementi. Le condizioni <if> possono essere combinate con tag <and|or|not> booleani. In caso contrario, viene applicato <and> per tutte le condizioni in <if>.
In un argomento è possibile includere i tipi di condizione riportati di seguito.
Argomenti
Descrizione
item
Imposta l'elemento a cui viene applicata la condizione.
type
Definisce il tipo di elemento. È possibile utilizzare regexpr se regexpr=true (opzionale).
name
Definisce il nome dell'elemento. È possibile utilizzare regexpr se regexpr=true (opzionale).
regexpr
Se impostato su true, è possibile utilizzare espressioni regolari nelle condizioni.
equal
Se impostato su true, i valori degli argomenti (type/name) devono corrispondere affinché la condizione sia true.
caseins
Se impostato su true, nella condizione viene fatta la distinzione tra maiuscole e minuscole.
Di seguito viene illustrato un esempio di una condizione applicata a elementi.
<item type="co*" name="*1*" regexpr="true" equal="true" caseins="true"/>
<attribute> - Imposta la condizione che viene applicata agli attributi degli elementi
Argomenti attribute
Descrizione
name
Nome dell'attributo. È possibile utilizzare regexpr se regexpr=true (opzionale).
value
Valore dell'attributo. È possibile utilizzare regexpr se regexpr=true (opzionale).
equal
Se impostato su true, i valori degli argomenti (type/name) devono corrispondere affinché la condizione sia true.
regexpr
Utilizzare espressioni regolari nella condizione.
caseins
Distinzione tra maiuscole e minuscole se l'istruzione è true.
Di seguito viene illustrato un esempio di una condizione applicata agli attributi degli elementi.
<attribute name="name" value="value" regexpr="true"
equal="true" caseins="true"/>
then - A una regola deve essere associato un argomento then. Aggiungere l'argomento solo se si desidera applicare la regola. Contiene tutti gli elementi a cui si applica la regola.
item - Imposta la sostituzione di un elemento.
Argomenti item
Descrizione
Phantom
Imposta il valore trasparente dell'elemento.
transparency
Imposta il valore di trasparenza dell'elemento.
color
Imposta il valore del colore dell'elemento.
figure - Imposta la sostituzione di un argomento della figura.
Argomenti figure
Descrizione
background
Imposta il valore del colore di sfondo della figura.
background-gradient
Imposta il valore del colore del gradiente di sfondo della figura.
<profile name="Profile A">
<rules>
<rule type="3D_Figure">
<if>
<and>
<attribute regexpr="true" name="sBOM Name" value="49130031*"/>
<attribute name="Source_file_name" value="49130031.prt.2"/>
</and>
</if>
<then>
<item color="#00ff00" transparency="25.0"/>
</then>
</rule>
<rule type="3D_Figure">
<if>
<and>
<attribute regexpr="true" name="sBOM Name" value="49130032*"/>
</and>
</if>
<then>
<item color="#ff00ff"/>
</then>
</rule>
</rules>
</profile>
<profile name="Profile B">
<rules>
<rule type="3D_Figure">
<if>
<and>
<attribute regexpr="true" name="sBOM Name" value="DIN*"/>
</and>
</if>
<then>
<item phantom="true"/>
</then>
</rule>
<rule type="3D_Figure">
<if>
<and>
<attribute regexpr="true" name="sBOM Name" value="Brake*"/>
</and>
</if>
<then>
<item transparency="20.0"/>
</then>
</rule>
</rules>
</profile>

<profile name="Profile C">
<rules>
<rule type="3D_Figure">
<then>
<figure background="#ff00ff" background-gradient="#00ff00"/>
</then>
</rule>
</rules>
</profile>
<profile name="Profile D">
<rules>
<rule type="3D_Figure">
<if>
<and>
<attribute name="Feature_Id" value="1337"/>
</and>
</if>
<then>
<item color="#f0b823"/>
</then>
</rule>
</rules>
</profile>