Fisrt is to generate the covering part basiclly combinated by a rectangular and fluid surface. They have same boundaries. Using an amplitude move the points of the rectangular surface to realize the fluid surface.
To build the trusses of the covering, using isotrim to divide the fluid surface and find the centroid of each parts. Project them into upper surface and connect with the vertices found from the isotrim using descontruct brep. The vertical and horizontal line of the truss could also be connected by the vertices and projected points.
The center supporting is defined by two circles. Using minimal surface to find the general shape. Then using triangular panel to generate the line of the frame.
The closed surface for the covering is sweeped by the line connected from the selected points from the wireframe of the basic rectangular and fliuid surface.
Using pipe battery to generate solids for the trusses and supporting frame. Then using solid difference to delete the redundant parts of the trusses.