No, there isn't.
But you are (possibly) wrong about creating an object. I would do it like this:
MultiPartPart mpp = part as MultiPartPar;
if (mpp != null)
{
mpp.obj1 = x;
mpp.obj2 = y;
mpp.obj3 = z;
}
The reason being that
mpp
is just a reference variable, so there is a good chance it will be optimised into a hardware register (eventually) by the JIT compiler, whereas the version you use requires a method call each time it is used because the compiler does not know that the cast operation does not have side effects you are relying on.