2. Syntax#

cara_elem = AFFE_CARA_ELEM (
    ◆ MODELE = model,
    ◇ INFO =/1 (by default),
             /2,
    ◇ VERIF = "MAILLE" (or not specified),
    ◆ | BEAM = _F (
           ◆ SECTION =/"GENERALE ",
                       /"RECTANGLE ",
                       /"CERCLE ",
                       /"COUDE ",
           # If: equal_to (" SECTION ", 'GENERALE')
               ◆ GROUP_MA = GRMA,
               ◇ VARI_SECT =/"CONSTANT" (by default),
                             /"HOMOTHETIQUE ",
               # If: equal_to (" VARI_SECT ", 'CONSTANT')
                   ◇/TABLE_CARA = table,
                     /CARA =/"A",
                              /"IY",
                              /"IZ",
                              /"AY",
                              /"AZ",
                              /"AND",
                              /"EZ",
                              /"JX",
                              /"RY",
                              /"RIZ",
                              /"RT",
                              /"JG",
                              /"IYR2 ",
                              /"IZR2 ",
                              /"AI",
                   ◇ & NOM_SEC = text,
                   ◇ & VALE = float,
               # If: equal_to (" VARI_SECT ", 'HOMOTHETIQUE')
                   ◆ CARA =/"A1",
                            /"IY1 ",
                            /"IZ1 ",
                            /"AY1 ",
                            /"AZ1 ",
                            /"EY1 ",
                            /"EZ1 ",
                            /"JX1 ",
                            /"RY1 ",
                            /"RZ1 ",
                            /"RT1 ",
                            /"JG1 ",
                            /"IYR21 ",
                            /"IZR21 ",
                            /"A2",
                            /"IY2 ",
                            /"IZ2 ",
                            /"AY2 ",
                            /"AZ2 ",
                            /"EY2 ",
                            /"EZ2 ",
                            /"JX2 ",
                            /"RY2 ",
                            /"RZ2 ",
                            /"RT2 ",
                            /"JG2 ",
                            /"IYR22 ",
                            /"IZR22 ",
                   ◆ VALE = float,
           # If: equal_to (" SECTION ", 'RECTANGLE')
               ◆ GROUP_MA = GRMA,
               ◇ VARI_SECT =/"CONSTANT" (by default),
                             /"HOMOTHETIQUE ",
                             /"AFFINE ",
               # If: equal_to (" VARI_SECT ", 'CONSTANT')
                   ◆ CARA =/"H",
                            /"EP",
                            /"HEY",
                            /"HZ",
                            /"EPY ",
                            /"EPZ ",
                   ◆ VALE = float,
               # If: equal_to (" VARI_SECT ", 'HOMOTHETIQUE')
                   ◆ CARA =/"H1",
                            /"HZ1 ",
                            /"HY1 ",
                            /"EP1 ",
                            /"EPY1 ",
                            /"EPZ1 ",
                            /"H2",
                            /"HZ2 ",
                            /"HY2 ",
                            /"EP2 ",
                            /"EPY2 ",
                            /"EPZ2 ",
                   ◆ VALE = float,
               # If: equal_to (" VARI_SECT ", 'AFFINE')
                   ◆ CARA =/"HY",
                            /"EPY ",
                            /"HZ1 ",
                            /"EPZ1 ",
                            /"HZ2 ",
                            /"EPZ2 ",
                   ◆ VALE = float,
           # If: equal_to (" SECTION ", 'CERCLE')
               ◇ VARI_SECT =/"CONSTANT" (by default),
                             /"HOMOTHETIQUE ",
               # If: equal_to (" VARI_SECT ", 'CONSTANT')
                   ◆ GROUP_MA = GRMA,
                   ◆ CARA =/"R",
                            /"EP",
                   ◆ VALE = float,
               # If: equal_to (" VARI_SECT ", 'HOMOTHETIQUE')
                   ◆ GROUP_MA = Grma,
                   ◆ CARA =/"R_DEBUT ",
                            /"R_FIN ",
                            /"EP_DEBUT ",
                            /"EP_FIN ",
                   ◆ VALE = float,
               ◇ MODI_METRIQUE =/"OUI ",
                                 /"NON" (by default),
               ◇ FCX = formula/sheet/function,
               ◇ TUYAU_NSEC = int (default: 16),
               ◇ TUYAU_NCOU = int (default: 3),
           # If: equal_to (" SECTION ", 'COUDE')
               ◆ GROUP_MA = Grma,
               ◇/COEF_FLEX = float,
                 /COEF_FLEX_XY = float,
               ◇/COEF_FLEX_XZ = float,
               ◇/INDI_SIGM = float,
                 /INDI_SIGM_XY = float,
               ◇/INDI_SIGM_XZ = float,
        ),
      | BAR = _F (
           ◆ GROUP_MA = Grma,
           ◆ SECTION =/"GENERALE ",
                       /"RECTANGLE ",
                       /"CERCLE ",
           # If: equal_to (" SECTION ", 'GENERALE')
               ◇/TABLE_CARA = table,
                 /CARA = "A" (or not specified),
               ◇ & NOM_SEC = text,
               ◇ & VALE = float,
           # If: equal_to (" SECTION ", 'RECTANGLE')
               ◆ CARA =/"H",
                        /"EP",
                        /"HZ",
                        /"HEY",
                        /"EPY ",
                        /"EPZ ",
               ◆ VALE = float,
           # If: equal_to (" SECTION ", 'CERCLE')
               ◆ CARA =/"R",
                        /"EP",
               ◆ VALE = float,
           ◇ FCX = formula/sheet/function,
        ),
      | SHELL = _F (
           ◆ GROUP_MA = Grma,
           ◆/EPAIS = float,
             /EPAIS_FO = formula/tablecloth/function,
           ◇/ANGL_REP = float,
             /VECTEUR = float,
           ◇ A_CIS = float (default: 0.8333333),
           ◇ COEF_RIGI_DRZ = float (default: 1e-05),
           ◇ COQUE_NCOU = int (default: 1),
           ◇/EXCENTREMENT = float,
           ◇ & INER_ROTA = "OUI" (or not specified),
             /EXCENTREMENT_FO = formula/tablecloth/function,
           ◇ MODI_METRIQUE =/"OUI ",
                             /"NON" (by default),
        ),
      | CABLE = _F (
           ◆ GROUP_MA = Grma,
           ◆ N_INIT = float,
           ◆ SECTION = float,
           ◇ FCX = formula/sheet/function,
        ),
      | DISCRETE = _F (
           ◇ REPERE =/"LOCAL ",
                      /"GLOBAL" (by default),
           ◇ AMOR_HYST = float,
           ◇ SYME =/"OUI" (by default),
                    /"NON ",
           # If: equal_to (" SYME ", 'OUI')
               ◇ CARA =/"K_T_D_N ",
                        /"K_T_D_L ",
                        /"K_TR_D_N ",
                        /"K_TR_D_L ",
                        /"K_T_N ",
                        /"K_T_L ",
                        /"K_TR_N ",
                        /"K_TR_L ",
                        /"M_T_D_N ",
                        /"M_T_D_L ",
                        /"M_TR_D_N ",
                        /"M_TR_D_L ",
                        /"M_T_N ",
                        /"M_T_L ",
                        /"M_TR_N ",
                        /"M_TR_L ",
                        /"A_T_D_N ",
                        /"A_T_D_L ",
                        /"A_TR_D_N ",
                        /"A_TR_D_L ",
                        /"A_T_N ",
                        /"A_T_L ",
                        /"A_TR_N ",
                        /"A_TR_L ",
               # If: ((equal_to (" CARA ", '",' K_T_D_N ') or (equal_to (" CARA ",' A_T_D_N ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_D_L ') or (equal_to (" CARA ",' A_T_D_L ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_D_N ') or (equal_to (" CARA ",' A_TR_D_N ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_D_L ') or (equal_to (" CARA ",' A_TR_D_L ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_N ') or (equal_to (" CARA ",' A_T_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_N
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_L ') or (equal_to (" CARA ",' A_T_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_L
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_N ') or (equal_to (" CARA ",' A_TR_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_N
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_L ') or (equal_to (" CARA ",' A_TR_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_L
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_T_D_N'))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_T_D_L'))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_TR_D_N'))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_TR_D_L'))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
           # If: equal_to (" SYME ", 'NON')
               ◇ CARA =/"K_T_N ",
                        /"K_T_L ",
                        /"K_TR_N ",
                        /"K_TR_L ",
                        /"M_T_N ",
                        /"M_T_L ",
                        /"M_TR_N ",
                        /"M_TR_L ",
                        /"A_T_N ",
                        /"A_T_L ",
                        /"A_TR_N ",
                        /"A_TR_L ",
               # If: ((equal_to (" CARA ", '",' K_T_N ') or (equal_to (" CARA ",' A_T_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_N
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_L ') or (equal_to (" CARA ",' A_T_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_L
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_N ') or (equal_to (" CARA ",' A_TR_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_N
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_L ') or (equal_to (" CARA ",' A_TR_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_L
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
        ),
      | DISCRET_2D = _F (
           ◇ REPERE =/"LOCAL ",
                      /"GLOBAL" (by default),
           ◇ AMOR_HYST = float,
           ◇ SYME =/"OUI" (by default),
                    /"NON ",
           # If: equal_to (" SYME ", 'OUI')
               ◇ CARA =/"K_T_D_N ",
                        /"K_T_D_L ",
                        /"K_TR_D_N ",
                        /"K_TR_D_L ",
                        /"K_T_N ",
                        /"K_T_L ",
                        /"K_TR_N ",
                        /"K_TR_L ",
                        /"M_T_D_N ",
                        /"M_T_D_L ",
                        /"M_TR_D_N ",
                        /"M_TR_D_L ",
                        /"M_T_N ",
                        /"M_T_L ",
                        /"M_TR_N ",
                        /"M_TR_L ",
                        /"A_T_D_N ",
                        /"A_T_D_L ",
                        /"A_TR_D_N ",
                        /"A_TR_D_L ",
                        /"A_T_N ",
                        /"A_T_L ",
                        /"A_TR_N ",
                        /"A_TR_L ",
               # If: ((equal_to (" CARA ", '",' K_T_D_N ') or (equal_to (" CARA ",' A_T_D_N ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_D_L ') or (equal_to (" CARA ",' A_T_D_L ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_D_N ') or (equal_to (" CARA ",' A_TR_D_N ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_D_L ') or (equal_to (" CARA ",' A_TR_D_L ')))))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_N ') or (equal_to (" CARA ",' A_T_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_N
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_L ') or (equal_to (" CARA ",' A_T_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_L
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_N ') or (equal_to (" CARA ",' A_TR_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_N
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_L ') or (equal_to (" CARA ",' A_TR_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_L
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_T_D_N'))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_T_D_L'))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_TR_D_N'))
                   ◆ GROUP_MA = Grma,
                   ◆ VALE = float,
               # If: (equal_to (" CARA ", 'M_TR_D_L'))
                   ◆ GROUP_MA = GRMA,
                   ◆ VALE = float,
           # If: equal_to (" SYME ", 'NON')
               ◇ CARA =/"K_T_N ",
                        /"K_T_L ",
                        /"K_TR_N ",
                        /"K_TR_L ",
                        /"M_T_N ",
                        /"M_T_L ",
                        /"M_TR_N ",
                        /"M_TR_L ",
                        /"A_T_N ",
                        /"A_T_L ",
                        /"A_TR_N ",
                        /"A_TR_L ",
               # If: ((equal_to (" CARA ", '",' K_T_N ') or (equal_to (" CARA ",' A_T_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_N
                   ◆ GROUP_MA = GRMA,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_T_L ') or (equal_to (" CARA ",' A_T_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_T_L
                   ◆ GROUP_MA = GRMA,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_N ') or (equal_to (" CARA ",' A_TR_N ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_N
                   ◆ GROUP_MA = GRMA,
                   ◆ VALE = float,
               # If: ((equal_to (" CARA ", '",' K_TR_L ') or (equal_to (" CARA ",' A_TR_L ') or (equal_to (" CARA ",' ", '",' ',' ')))) M_TR_L
                   ◆ GROUP_MA = GRMA,
                   ◆ VALE = float,
        ),
      | MASSIVE = _F (
           ◆/GROUP_MA = grma,
             /TOUT = "OUI" (or not specified),
           ◆/CHAM_ORIE = card/cham_no,
             /ANGL_REP = float,
             /ANGL_AXE = float,
             /ANGL_EULER = float,
           ◇/ORIG_AXE = float,
        ),
      | GRID = _F (
           ◆ GROUP_MA = GRMA,
           ◆/SECTION = float,
             /SECTION_FO = formula/tablecloth/function,
           ◆/ANGL_REP_1 = float,
             /ANGL_REP_2 = float,
             /VECT_1 = float,
             /VECT_2 = float,
           ◇/EXCENTREMENT = float,
             /EXCENTREMENT_FO = formula/tablecloth/function,
           ◇ REPERE =/"CYLINDRIQUE ",
                      /"GLOBAL" (by default),
           # If: (equal_to (" REPERE "," CYLINDRIQUE "," "))
               ◆ ORIGINE = float,
               ◆ AXE_Z = float,
           ◇ COEF_RIGI_DRZ = float (default: 1e-10),
        ),
      | MEMBRANE = _F (
           ◆ GROUP_MA = GRMA,
           ◆ EPAIS = float,
           ◇/ANGL_REP_1 = float,
             /ANGL_REP_2 = float,
             /VECT_1 = float,
             /VECT_2 = float,
           ◇ N_INIT = float,
        ),
      | MULTIFIBER = _F (
           ◆ GROUP_MA = GRMA,
           ◆ GROUP_FIBRE = text,
           ◇ PREC_AIRE = float (default: 0.01),
           ◇ PREC_INERTIE = float (default: 0.1),
        ),
      | RIGI_PARASOL = _F (
           ◆ GROUP_MA = GRMA,
           ◆/GROUP_MA_POI1 = grma,
             /GROUP_MA_SEG2 = grma,
           ◆/FONC_GROUP = formula/tablecloth/function,
             /COEF_GROUP = float,
           ◇ REPERE =/"LOCAL ",
                      /"GLOBAL" (by default),
           ◆ CARA =/"K_TR_D_N ",
                    /"K_T_D_N ",
                    /"K_TR_D_L ",
                    /"K_T_D_L ",
                    /"A_TR_D_N ",
                    /"A_T_D_N ",
                    /"A_TR_D_L ",
                    /"A_T_D_L ",
           # If: exists (" CARA ") and (len (CARA) ==1 or (len (CARA) ==2 and CARA [0] [2:] == CARA [1] [2:]) == [1] [2:]))
               ◆ VALE = float,
           ◆/GROUP_NO_CENTRE = grno,
             /COOR_CENTRE = float,
           ◇ UNITE = unit,
        ),
      | MASS_REP = _F (
           ◆ GROUP_MA = GRMA,
           ◆ GROUP_MA_POI1 = GRMA,
           ◆ VALE = float,
           ◆ TYPE =/"TOTALE ",
                    /"LINEIQUE ",
                    /"SURFACIQUE ",
           ◇ FONC_MULT = formula/sheet/function,
        ),
    ◇ ORIENTATION = _F (
         ◆ CARA =/"VECT_Y ",
                  /"ANGL_VRIL ",
                  /"VECT_X_Y ",
                  /"ANGL_NAUT ",
                  /"GENE_TUYAU ",
         # If: (equal_to (" CARA ", 'VECT_Y'))
             ◆ GROUP_MA = GRMA,
             ◆ VALE = float,
             ◇ PRECISION = float,
         # If: (equal_to (" CARA ", 'ANGL_VRIL'))
             ◆ GROUP_MA = GRMA,
             ◆ VALE = float,
             ◇ PRECISION = float,
         # If: (equal_to (" CARA ", 'VECT_X_Y'))
             ◆ GROUP_MA = GRMA,
             ◆ VALE = float,
             ◇ PRECISION = float,
         # If: (equal_to (" CARA ", 'ANGL_NAUT'))
             ◆ GROUP_MA = GRMA,
             ◆ VALE = float,
             ◇ PRECISION = float,
         # If: (equal_to (" CARA ", 'GENE_TUYAU'))
             ◆ GROUP_NO = grno,
             ◆ VALE = float,
             ◇ PRECISION = float (default: 0.0001),
             ◇ CRITERE =/"RELATIF" (by default),
                         /"ABSOLU ",
      ),
    ◇ POUTRE_FLUI = _F (
         ◆ GROUP_MA = GRMA,
         ◆ B_T = float,
         ◆ B_N = float,
         ◇ B_TN = float,
         ◆ A_FLUI = float,
         ◆ A_CELL = float,
         ◆ COEF_ECHELLE = float,
      ),
    ◇ RIGI_MISS_3D = _F (
         ◆ GROUP_MA_POI1 = GRMA,
         ◇ GROUP_MA_SEG2 = Grma,
         ◆ FREQ_EXTR = float,
         ◇ UNITE_RESU_IMPE = unit (default: 30),
      ),
    ◇ MASS_AJOU = _F (
         ◆ GROUP_MA = GRMA,
         ◆ GROUP_MA_POI1 = GRMA,
         ◆ FONC_GROUP = formula/sheet/function,
      ),
    ◇ & GEOM_FIBRE = fiber,
)

◆: mandatory
◇: optional
: present by default
&: together
/: only one among
|: several possible choices