Hi @Luca_Indrizzi,
From the screenshots you give, everything seems normal to get to the results you expect.
How did you set up the blocking factor ? Did you set up as 8 runs per block (to have a 2^3 factorial design in each block) ? :

If yes, specifying 16 runs and main effects in the model should give you what you expect :

Here is the script if you want to generate the same design :
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ), Add Factor( Blocking, 8, "X4" ),
Set Random Seed( 1874557131 ), Number of Starts( 1 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {3, 1} ), Set Sample Size( 16 ), Simulate Responses( 0 ),
Save X Matrix( 0 ), Make Design}
)
And I attached the datatable (with colors!) for you to have a look.
If you want to have the full factorial design, you need to specify 2-factors interactions in the model, and with the same procedure, you'll end up with the full factorial design replicated once in two blocks like you expect :

Here is the script to generate it :
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ), Add Factor( Blocking, 8, "X4" ),
Set Random Seed( 1421844496 ), Number of Starts( 2 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {1, 1}, {2, 1} ), Add Term( {1, 1}, {3, 1} ),
Add Term( {2, 1}, {3, 1} ), Set Sample Size( 16 ),
Optimality Criterion( "Make A-Optimal Design" ),
"A-Optimality Parameter Weights"n( [1 1 1 1 1 1 1 1] ), Simulate Responses( 0 ),
Save X Matrix( 0 ), Make Design, Set Run Order( Randomize within Blocks ),
Make Table}
)
And datatable is attached as well.
Another option is to create the 8-runs factorial design, and then use the platform "Augment Design" to replicate the runs once. But you'll have to introduce in your final datatable a column indicating the block/part of the design, and set up accordingly (and manually) the column data type (character),modeling type (Nominal) and properties needed : ValueOrder (1 for block 1 and 2 for block 2), RunsperBlock (8), Design Role (Blocking) and Factor Changes (Easy)
Hope this will help you,
Hi @Victor_G
Thank for your reply.
Exactly, I set 8 runs per block.
But what you and I got is a replicated 2^3-1 design in each block, since for ex. 1,1,1 appears twice in block 1 & 2, but for ex. -1,-1,-1 doesn't appear at all. What I would like to have is that block 1 & 2 contain each the entire 2^3 factorial design.
Best regards
Yes I figured out you wanted the full factorial and not half full factorial after my initial response, so I revised it 
You need to specify in the model the 2-factors interactions in order to get the full factorial design :

In the revised answer, you have the options for both designs and two datatables and scripts are provided (one for half full factorial replicated, one for full factorial replicated).
Hope this will help you,
The results from Custom Design depend on the model you specify. In this case, Did you specify all 2-way and 3-way interactions. My result is what you asked for.
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ), Add Factor( Blocking, 8, "X4" ),
Set Random Seed( 21226362 ), Number of Starts( 9 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {1, 1}, {2, 1} ), Add Term( {1, 1}, {3, 1} ),
Add Term( {2, 1}, {3, 1} ), Add Term( {1, 1}, {2, 1}, {3, 1} ),
Set Sample Size( 16 ), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design,
Set Run Order( Randomize within Blocks ), Make Table}
);