Why can’t the Data Transfer Modifier be applied?

Why can’t the Data Transfer Modifier be applied?

I am using the Data Transfer Modifier to make a flat bevel appear like a curved bevel.

There is an original object and a beveled object. The beveled object has the modifier on it. The modifier is taking the flat face normals from the original and using them to flatten out the shading on the parts that are not beveled.
When I click 'Apply' the effect disappears instead of being applied.

There are also two options in the Operator Panel that I don't fully understand. It can be applied as Object Data or as a New Shape. If I try to Apply it as a New Shape I get an error message saying: "Only deforming modifiers can be applied to shapes."
Is this the intended behavior of the Data Transfer Modifier, and if so, why is it like this?


Answer 1:

The reason is it is influencing normals in a way that Blender does not support by default. So when you apply it the altered normal data is lost.

For Blender to display and store custom normals data Auto Smooth must be enabled with some Custom Split Normals Data:

enter image description here

After you do this you can apply your modifier and it will write the data into the Custom Split Normals Data datablock.

This can be considered as a consistency bug because the Normal Edit modifier does this all for you when you apply it. Feel free to report your findings.

The Object Data or New Shape option of Apply operator is only relevant to modifiers that deform the object mesh (this operator operates for all modifires when you apply them). The deformation is then not written to the objects data but as a new Shapekey.