Node Create/Edit Form - Multistep with dynamic fields Our site has different type of articles. Based on the type selected, the fields displayed to the user are varied. The ask is to create a multi-step form and include type field on step 1. Based on the type, subsequent steps and fields included in those steps need to vary. 

An important ask is that they need the ability to change the type of the article after it has been created. So on day 1 they might create an article with type "single page" but later change it to "multi page" (Multi-page article has all fields in single page plus additional fields). 

I looked at Multistep, msnf, webform and webform_conditional modules etc, but they didn't seem to provide the functionality I need. Is creating this using Form API the best approach? Any suggestion?

UPDATE1

Another important requirement: An article could have multiple (0 or many) sections and each section could have multiple subsections. What is the best way to model the content type? Create content type Section and Subsection and then use node references (article will have a nod reference to section; section will have a node reference to subsection)? Using node references, can one to many relationship be implemented?
There are three module(may be two in your case), which can together to achieve what you want in D7. I have done this &amp; client use it on daily basis..

Field Group 

Multi Step

Then I have used Conditional Field module to have fields dependent on one another &amp; it works great.

If you find any error in setup, please try the issue queue for patch.