How do I force lavaan to use positive factor loadings for a latent construct? I am looking for a way to force lavaan to use positive factor loadings in a latent construct.
I am working on a sem defined as follows:
'
              FF =~ NA*ma09 + mp02 + mp03_r + mp19_r + mp18_r + ma02 + mp17_r + 
              mp16_r + mp07 + ma03 + mp06 + mi02 + ma12_r + ma01 + mi04 + mp08_r + ma04
             
             
              BI =~ NA*isced97
              BiE =~ NA*max_edu_Eltern
              MI =~ NA*Migrationsscore
              KO =~ NA*Kontakt
              NS =~ NA*pn11_r
              INC =~ NA*inc

              #Regressions
              FF ~ BiE + INC + NS + KO + MI + BI
              NS ~ BI 
              
                            
              FF ~~ 1*FF
              BiE ~~ 1*BiE
              INC ~~ 1*INC
              NS ~~ 1*NS
              KO ~~ 1*KO
              MI ~~ 1*MI
              BI ~~ 1*BI

            '

In this model the factor loadings on "FF" are positive but if I make minor modifications to the model, like adding some restraints like the ones below (or others like including another regression) the factor loadings suddenly all become negative.
 mp02~~mp03_r
              mp02~~mp06
              mp02~~mp07
              mp02~~mp08_r
              mp03_r~~mp06
              mp03_r~~mp07
              mp03_r~~mp08_r
              mp06~~mp08_r
              
              mp16_r~~mp17_r 
              mp16_r~~mp18_r 
              mp16_r~~mp19_r
              mp17_r~~mp18_r
              mp17_r~~mp19_r
              mp18_r~~mp19_r
              
              mi02~~mi04
              
              ma01~~ma02
              ma01~~ma03
              ma01~~ma04
              ma01~~ma09
              ma02~~ma03
              ma02~~ma04
              ma02~~ma09
              ma04~~ma09

How do I stop that from happening? Using start() with a positive number, include labels for the loadings and set them to >0,...?
Thanks in advance.
 A: I used rstart(1) with success, keeping the NA but also adding rstart for a couple items. I think not keeping the NA when using rstart lead to problems before.
'#Definition der Faktoren
              FF =~ NA*ma09 + mp02 + mp03_r + mp19_r + mp18_r + ma02 + mp17_r + 
              mp16_r + mp07 + ma03 + mp06 + mi02 + ma12_r + ma01 + mi04 + mp08_r + ma04 
              + start(1)*ma09
              + start(1)*mp02 
              + start(1)*mp03_r
             
             
              BI =~ NA*isced97
              BiE =~ NA*max_edu_Eltern
              MI =~ NA*Migrationsscore
              KO =~ NA*Kontakt
              NS =~ NA*pn11_r
              INC =~ NA*inc

              #Regressionen / Strukturmodell
              FF ~ BiE + INC + NS + KO + MI + BI
              NS ~ BI 
              
              
              
              FF ~~ 1*FF
              BiE ~~ 1*BiE
              INC ~~ 1*INC
              NS ~~ 1*NS
              KO ~~ 1*KO
              MI ~~ 1*MI
              BI ~~ 1*BI

 #Korrelation Messfehlervarianzen
              mp02~~mp03_r
              mp02~~mp06
              mp02~~mp07
              mp02~~mp08_r
              mp03_r~~mp06
              mp03_r~~mp07
              mp03_r~~mp08_r
              mp06~~mp08_r
              
              mp16_r~~mp17_r 
              mp16_r~~mp18_r 
              mp16_r~~mp19_r
              mp17_r~~mp18_r
              mp17_r~~mp19_r
              mp18_r~~mp19_r
              
              mi02~~mi04
              
              ma01~~ma02
              ma01~~ma03
              ma01~~ma04
              ma01~~ma09
              ma02~~ma03
              ma02~~ma04
              ma02~~ma09
              ma04~~ma09
            
             '
```

A: You can label parameters and specify (in)equality constraints in your syntax.
https://lavaan.ugent.be/tutorial/syntax2.html
Constraining one of the loadings should suffice to keep them all in the same direction.
FF =~ NA*ma09 + myArbitraryLabel*ma09 + ...

...

myArbitraryLabel > 0

