No announcement yet.

Problem with constraints in family

  • Filter
  • Time
  • Show
Clear All
new posts

    Problem with constraints in family

    Hi everyone,

    I moved from Inventor into Revit for one project and I have a big problem with constraints. I try to design family of the Hospital Cabinets with parametrical dimensions and door opening angle.

    I cant understand why when I change the door opening angle, Revit tries to change X and Y position of the door. And there is no matter if i locked dimensions X and Y or I connected/aligned the edge of the door with the front and side planes of the cabinet main body .

    Please, see the pictures and look into the RFA file in the attachment. I will be glad for help in understanding what is wrong..

    Thanks for help!
    Attached Files

    There a few - not necessarily rule, but proper practices - that you need to follow when creating flexible parametric object in Revit.
    First is that you don't want to constrain graphics. You first want to build the "bones" of the family using Reference Plans and Reference Lines.
    Then you want to attach the "muscles" - dimensions
    Finally, you want to add the "skin" - the actual 2D or 3D elements and lock them to the planes
    See this thread
    Generally, when you need to change the Angle on something, you make a Reference Line and lock it's endpoint to the rotation center. Then you can add the Angular Dimension and link it to a Parameter.
    Last edited by DaveP; February 1, 2017, 09:04 PM. Reason: typos
    Dave Plumb
    BWBR Architects; St Paul, MN

    CADsplaining: When a BIM rookie tells you how you should have done something.


      I've not used Inventor but imagine the methodology of constraining elements is different from Revit. I expect that because they were developed by completely different teams of developers and product managers, though they came into being roughly around the same time. Fwiw, Autodesk created Inventor from scratch when their existing Mechanical Desktop, built on top of AutoCAD, wasn't making enough of a dent in the market compared with other incumbent products like Solidworks, CATIA or Pro-Engineer (Revit's founders have Pro-E history and Autodesk bought Revit).

      That said I think it's worth mentioning that Revit's world is a work-plane world and we have to be careful to define or change the active workplane as we change from one part of a family to another, like the cabinet form versus the door form. Especially important is that Revit doesn't constrain based on angles alone. See the attached image for what they call Automatic Sketch Dimensions (ASD's). I have never seen an angular ASD so I've reached the conclusion that Revit does not factor angles into constraining element positions unless we specifically add/provide them.

      As soon as a constraint, usually through a dimension and parameter, is applied to an element in a family Revit begins to worry about unconstrained elements or parts of elements. In the image the blue ASD's are locking down the end point of the line that is not defined. The other end is defined by the Length parameter and its X/Y position has to remain variable so Length and Angle can vary.

      In the second image I eliminated the Length parameter and dimension and now the endpoint furthest away from the reference planes is loose, is not constrained because it must be able to change given the angle parameter and appearance of the ASD's. Similar to placing dimensions in drawings, leaving or defining where a dimension value is not required is important, "leaving room for the slop" is how a friend puts it.

      The Reference Line (RL) element is quite different from a Reference Plane (RP) and was created to help deal with angular relationships because Reference Planes (RP) don't really have true end points. The RP has graphical grips we can use to control how much of the it we have to see, but it doesn't provide constrained end points. The RL is visible in 3D views and provides 4 possible work-planes, whereas the RP is not visible in 3D and only provides one work-plane.

      The general approach for variable angles is to create a RL, constrain it via an angular parameter. Assign the active work-plane to the most appropriate work-plane it offers. The relevant elements can be created on that work-plane and constrained to it. As such it is wise to create the bones (RP/RL) and muscle (parameters and dims) first and then flex the skeleton before adding any skin (3D forms, lines or 2D elements). This way you can be more certain that attaching the skin to the bones will work.
      Attached Files
      Last edited by Steve_Stafford; February 2, 2017, 09:11 PM. Reason: added info for the added second image, added more info regarding "loose" end point


        Thank you for your response DaveP and Steve_Stafford,

        But as you can see in the attachment (pictures 04.jpg and 05.jpg), I built families using Reference Planes and Reference Lines. And the problem is that in Parent Family (CABINET) I can't see RP and RL which I drew in Child Family (BODY and DOOR).. so I can't use them..

        Best regards,


          Hi Krzysztof,

          I revised your family to achieve what I think you want. Basically I added a few reference planes for your "door" family to lock on to, but the trick is to lock the model line you created inside the "door" family, not the actual face of any of the geometry inside the "door" family. Just press "tab" until you select the model line (see attached video).

          Also note that I changed that model line inside the "door" and "body" family to "Invisible Lines" so they are not visible when loaded into the host family and in a project.

          Hope this helps,
          Attached Files


            I don't have 2015 installed anymore so the work I did can't help you unfortunately. I attached the 2017 version I saved if you have access to 2017 too though. The RP and RL need to be in the host family also.

            The first image (left)
            • Added bones (Reference Planes to define the pivot point for the door)
            • Added bone (Reference Line for the door angle)
            • Align and Lock Endpoints of Reference Line to Pivot point intersection of Right and Front Reference Planes
            • Added Muscle (dimensions and parameters)
            • Test/Flex skeleton

            The Second Image (right)
            • Your door family edited/revised so the Origin is defined at the corner of the door where it is supposed to pivot, reference plane Origin property Checked
            • Uncheck Family Parameter - Always Vertical (so it can rotate, quirky but it wouldn't obey follow the host RL work plane with it checked.
            • Saved and reload the family into the host
            • Place the door > Workplane (not Face) > select horizontal work plane of Reference Line (verify it is assigned to that in Properties)
            • Align the door to the Reference Line (no need to lock)
            • Move door over so the pivot point is at the intersection of the Front and Right work planes (no constraints needed)

            Test flex the angle and cabinet width to see if it flex properly. It did for me.

            Good luck!
            Attached Files
            Last edited by Steve_Stafford; February 3, 2017, 07:53 AM.


              Krzysiek, take a look at Steve’s blog here. It’s about the door family, not the cabinets, but these family building principals you can apply to almost (if not to all) family creation process.



                @zilong245: thx for you responce and help! BUT.. when I try to change the width of the cabinet it still crashes (see the attachment 06.jpg). My aim in this project is:
                - to create the family where I (or architects) can control:
                -- width/height/depth of the cabinet
                -- door opening angle
                -- door type (glass/solid)
                -- door quantity (one/two)
                -- door side, if the quantity is one (left/right)

                @Steve_Stafford: I dont have Revit 2017 :-( If you could prepare the AVI file with the steps of your idea for the construction of the family, I would be very thankful..

                @PijPiwo: thx for the link to the blog! I will study it when i find some more free time.. for sure it will be useful for me!

                Pozdrawiam/Na zdrowie/Best regards,
                Attached Files


                Related Topics