Where to find information on destructible mesh and C++

Hi, I was wondering where I could find some information on destructible meshes and C++ programming. In our (puzzle) game pieces need to get destroyed, but not on impact of another object, only if some other conditions are met, so I would like to control the destruction manually.
Some questions I have:
-Is it possible to do the destruction caluculated at runtime, so it will break in different pieces every time, or do you have to create a destructable mesh in advance always, and only have 1 configuration of pieces?
-What classes and functions can I use in C++ to create and/or control destructable mesh?
-Can I use (or make in real time) a destructible mesh and only have it break when I tell it to break, or will it always respond to colliding with other objects?

I hope someone can point me to information, or give answers to these questions directly.

Thanks!

Took me forever to find em, You can right click a component in a blueprint to navigate to its .h, here are the locations of the Destructible Mesh and Destructible Component files:

C:\Program Files (x86)\Epic Games\4.14\Engine\Source\Runtime\Engine\Classes\Components\DestructibleComponent.h

C:\Program Files (x86)\Epic Games\4.14\Engine\Source\Runtime\Engine\Classes\Engine\DestructibleMesh.h