Though i usually avoid EAVs this seems like a case where you could have one table to hold all the attributes.
for example
you could have one table with the shape type and shapeId,
This could link to a table that holds all the attributes for that particular shape
with ShapeId, ShapeAttribute, Value , Units
For ShapeAttribute you could hold the values of height, length, colour, radius, depth etc....
in the Value column you could hold the value of each measure, eg Length = 2 , height = 4
and in the Units column you can put the unit of measure for each value, eg. Kgs, mm , cm etc..
This table could be cleaner with a lookup table for ShapeAttribute.
This is just a quick suggestion though without knowing what the business requirements are (if any)