I'm new to the Revit game, but I'm trying to create a family while streches from one face to another of a structural element. More specifically, what I want to create is a family of prestressing cables for prestressed concrete beams. On this path, I've run into a few questions:
From what I've understood, I need to create a face-based void sweep to create the hole in the concrete beam and within this void create another solid sweep which would be the cable proper (that's another question, actually: is there a need for the void or is there a way to simply have the cable inside the concrete without "interference"?).
However, I can't seem to find a way to make this face-based sweep go automatically to the opposite face. Is this possible, or will I have to create a Length parameter for the cable which will have to be equal to the length of the beam? That would be understandable, given the generality of the Face-based family and how (in other structural elements) there may be more than one "opposite face". In that case, is there another, more adequate family to base myself on?
As well, the cables evidently cannot exist outside of the beam itself, so I would like to create a conditional parameter for the height of the cable (relative to the faces of the beam) something along the lines of (pseudo-code):
IF(UserValue < MinCover ; MinCover ; UserValue).
Would I have to create for each height a UserHeight and a CalculatedHeight (which gets UserHeight and compares it to MinCover), the latter being the one actually used? Or is there a way for the "(default)" value defined and used in non-formula situations to be a value for it's own formula?
And as a last question which I'm certain cannot be done but asking anyways: is there a way to define a "dynamic" cable with an arbitrary number of parts? As in, can I create a cable with X segments, therefore defined by X heights? Or would that require creating a C# external command to create a Model-in-Place of the cable?
And here's an exemplification of a prestressed beam for whoever may be curious.