
Last year I did a post on making custom panel patterns. It was noted that among other limitations, Revit's out of the box hexagons kind of stink. I finally got around to figuring out how to make a real equilateral hexagon, where there is no overlap between panels, they count right, and they flex. One problem: they are a little funky on really irregular grids, curvy things, etc, but they work on most regular surfaces. If you download this file, and keep your UV divisions to a proportion of 1 to 1.73, and don't ask any questions, you'll be fine.
For those who prefer to suffer and learn how, read on.
First, why do the out of the box hexes look so . . . soooo . . . clumsy? Distorted? Unsatisfying?

Basically a rectangular grid cannot define an equilateral hexagon, at least not by connecting intersection points, and the divided surface patterns will only use rectangular grids. So the results are NEVER going to be a well proportioned hex. Or, more accurately, there will be certain limitations on the proportions which you may find unsatisfying.

So we have to do a little work.

Nasty, but trust me, this is all stuff from high school. The short version is this: An Eq Hex has 6 corners that are all at 120 degree angles. That means you can decompose it into 30 and 60 degree pieces.

Now you can whip out your handy dandy brain cells from when you were a teenager (got any left?) and recall that the good old Ancients figured out all sorts of things about 30/60/90 triangles, namely this:

That is, the proportions of a 30/60/90 triangle are always 1 X 2 X sqrt3.
So we know that the "2" is a distance between 2 points on the grid, and the 2 end of our hypotenuse are equal distances from the grid points, as long as our rectangular grid remains at a set proportion namely, 1x Sqrt3, or 1 to 1.73205

[Deep breath]
Therefore, as long as your grid is proportioned at 1x1.73 . . ., and your hexagonal points are offset from their neighboring/host points by (b/sqrt3)*.5, all is good.
And it gets a little freaky on curves. I'm pretty sure you can account for this by adding more reporting parameters between points to drive the individual offsets. But who has time to do THAT?