Modeling Families needs a much more robust method to model shapes that doesn't require so many work-arounds to achieve designs that aren't just primitive shapes such as extrusions and lofts. Currently the workaround is to import geometry from third parties, and forgo parametric design parameters. This is fine for families that are static or components within a static Family, but not for parametric Families. These features are not new ideas. They are common features in most parametric applications, including inside the Autodesk ecosphere:
Boolean Operations
At a high level I would like to see better Boolean operations such as Intersect, Union, Subtract, Split, and XOR (Note that Subtract is distinct from Voids).
Stable Results
The resulting geometry should be stable enough that transforms that do not throw Boolean operations into a disarray, such as is the case with Voids when geometry is copied, mirrored, or rotated.
Mutable Results
The resulting geometry should be editable and mutable such as the ability to bevel an edge, perform a skinning modification, etc. Modifying the original primitive shapes nested within the geometry should also avoid disrupting these downstream modifications, as some applications do as IDs change on faces and edges.
Parametric Modifiers
Keeping things parametric, stackable modifiers such as:
Booleans as mention
Transforms
Duplicate
Bend
Bevel
Skin
Extrude Faces
Subdivide
Array
Skew
Taper
Simplify/Optimize
Smooth
VRAM-Centric
Any modifiers that may potentially generate massive repetition should not be handled as individual entities in RAM. They need to be handled GPU side until it's printed. If a modifier creates a million cylinders to create fencing or railing, please don't make that one cylinder model eat up GBs of RAM when this is what VRAM is for. Revit is a Large Scene 3D application. If a modifier can't be made to feed the GPU, don't add it until it can.
Dynamo
It would be great if we could dynamically control family behavior using nodes, or perhaps using Dynamo. Using these nodes, a user should be able to define behavior such as updating parameters, creating limits, applying logic, decision trees, adding and removing modifiers, and so on. This would probably solve a giant swath of feature requests as well, and create a whole new paradigm of capabilities. All the limitations of parameter formulas would go away instantly.