I'm afraid you've lost me. There is no need to have a pk and fk of the same Id within a table - a simple self-join would work. But it seems you want the STEPS turned into records and not necessarily the part itself?
It appears that you are missing tables. I have no understanding why you have all those calculations when the result is exactly the same - MDL_Data Name. But splitting records into fields or vice-versa requires scripting and it is best for you to provide your file with sample data or a new demo file showing the fields which need to be translated. Simply, we need more information.