Tag: Revit

  • Revit Families 401 – Data Validation

    As I mentioned in a follow up comment to Revit Families 103 – Formula Basics, Revit still doesn’t allow you to do data validation on values or formulas in families or on table data.

    Still, you can build some functionality into your families to ensure that a value never exceeds a specified range or create warnings for the user of your family.

    Lets start with a simple example.  In the plan view below I am showing a basic table.

    Screen1

    Lets say in this example that we never want the table’s width to be greater than 1/2 the depth.  We have a few choices.

    1. Don’t do anything
    2. Display an error message for the user
    3. Default to another value

    (more…)

  • 3d PDF’s Are Not Ready for Use with Revit

    AdobeAcrobat9ProExtendedJust a quick note this morning to talk about Revit and creating 3d PDF files.  As we move more and more to creating complete and accurate 3d models we really want an easy way to share these with our clients and consultants.  Consultants are usually technologically savvy enough to open RVT, DWF, or DWG files but what easy solution can we offer our clients?

    Over the last couple days I’ve done some experimentation with creating 3d PDF documents.  Why PDF’s?  The only reason is because everyone is using them and knows what they are.  This is a benefit over the DWF format which requires the download of an additional viewer program.  (Autodesk True View or Design Review)  Being able to have a model embedded in a PDF that a client can open and manipulate is very appealing.  Multiple sheets could be set up with 2d images and 3d “live” models.

    To get started I followed Tim  Huff’s post on “How to get Autodesk Revit models into Acrobat 3D version 8“.  I downloaded a demo version of Adobe Acrobat Pro Extended and gave it a try.  My results were very disappointing.

    Here is why 3d PDF’s are not ready for use with Revit:

    1. Even after following Tim Huff’s directions exactly I could not get the Print Screen key to capture a Revit model.
    2. Importing a DWF into Acrobat worked, however with more complex models (an actual building with linked RVT files and design options) the building was exploded and scattered in 3 dimensions making it unusable.
    3. Importing an IFC file worked, however Revit doesn’t exported linked RVT files in the IFC.  So you are limited once again to very simple models.
    4. Navigation in a 3d PDF is not intuitive.  I was getting frustrated manipulating the model and trying to explain how to navigate to someone not familiar with 3d models would be nearly impossible.
    5. Paying an extra couple hundred dollars per licence for the Extended version of Acrobat is a hard sell when Autodesk offers DWF creation for free.
    6. Probably most importantly, the files size of a 3d PDF was substantially larger than a DWF file.  Depending on the model it was anywhere from 2 to 3 times larger.

    I had high hopes for 3d PDF’s but for now we will be staying with the DWF format.  It’s a little inconvenient to require a client to download another program, but it’s much better than the time and cost required to make larger less functional (or unusable) 3d PDF’s.

  • Revit Families 103 – Formula Basics

     

    Update: 4/12/11 for Revit 2012 and added more examples.

    I love formulas, they let you do some really fun things.  The formula I mentioned in my last post calculates the overall width of a family taking into account if the family has one or two loops toggled to be visible.  Formulas let you create a family that is truly flexible and has a lot of built in intelligence and a few safeguards.  They can also make using the family a lot easier to use by maintaining relationships between elements or calculating details about the family like area, volume, etc.

    I do some pretty advanced stuff with formulas, but we need to get the basics under our belt first.  Most of this post is from the Revit Help files.  To save you the trouble of looking it up, I’m putting it here.

    Keep in mind that Revit is aware of units.  So to avoid getting an inconsistent units error remember to divide and multiply when appropriate.
    For example, these are correct formula:

    (Length_A * Length_B) = Area_C
    (Length_A * Length_B)/1 = Length_C

    Basic opperators:

    + Add: 15′ + 0′  6″ + Length sin Sine: sin(75)
    Subtract: 1′ 2″ – Width cos Cosine: cos(75)
    * Multiply: Length * Width tan Tangent: tan(75)
    / Divide: Length / 8 asin Arcsine: asin(75)
    ^ Exponent: x^y, x raised to the y power acos Arccosine: acos(75)
    log Logarithm: log (100) atan Arctangent: atan(75)
    sqrt Square root: sqrt(64), square root of 64 = 8
    exp E raised to an x power: exp(2)
    abs Absolute Value: abs(-2), will return 2
    pi pi: pi() * (Radius ^ 2), the formula for Circumference

    Conditional Statements

    A conditional statement uses this structure:

    IF (<condition>, <result-if-true>, <result-if-false>)

    This means that the values entered for the parameter depend on whether the condition is satisfied (true) or not satisfied (false). If the condition is true, the software returns the true value. If the condition is false, it returns the false value.

    Supported Conditional Operators

    < Less Than
    > Greater Than
    = Equal to
    / Divide: Length / 8
    AND Both statements are true
    OR One of the statements is true
    NOT Statement is false

    Conditional statements can contain numeric values, numeric parameter names, and Yes/No parameters.

    Currently, <= and >= are not implemented. To express such a comparison, you can use a logical NOT. For example, a<=b can be entered as NOT(a>b).  For more information see “Revit Families 402 – Greater Than or Equal To

    Sample Conditional Statements

    Simple IF Statement
    IF (Length < 30′, 2′ 6″, 4′)

    Formula That Returns Strings
    IF (Length > 30′, “This thing is tall”, “This thing is short”)

    Using logical AND
    IF ( AND (x = 1 , y = 2), 8 , 3 )

    This will return <true> if both x=1 and y=2, else <false>

    Using logical OR
    IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )

    This will return <true> if either A=1 or B=3, else <false>

    Nested IF statements
    IF ( Length < 10′ , 1′ , IF ( Length < 20′ , 2′ , IF ( Length < 30′ , 3′ , 4′ ) ) )

    Returns 1′-0″ if Length<10′-0″, 2′-0″ if Length<20′-0″, 3′-0″ if Length<30′-0″ and 4′-0″ if Length>30′-0″

    IF with Yes/No condition
    Length > 10
    (Note that both the condition and the results are implied.)

    Returns checked box <true> if Length > 10

    NOT with Yes/No condition
    not(myCheckbox)

    Returns checked box (<true>) of Yes/No parameter “myCheckbox” is unchecked, and it returns <false> if “myCheckbox” is checked.

    Rounding

    Prior to Revit 2012 the only way to round numbers was to pass a number through an integer parameter.  The integer parameter always rounds to the nearest whole number with the standard mathematical rounding rules of:

    Down -> for fractions of 0.0 to 0.49 and -0.5 to -0.99
    Up -> for fractions of 0.05 to 0.99 and -0.49 to 0.0

    As of Revit 2012 we now have three additional functions to use!!

    Note that “x” is unit-less

    Round(x)
    Rounds to the nearest whole number per the standard rules mentioned above.

    round (1.1) = 1
    round (1.5) = 2
    round (1.7) = 2

    round (-1.1) = 1
    round (-1.5) = 1
    round (-1.7) = 2

    Roundup(x)
    Rounds to the largest whole number greater than or equal to “x”.

    round (1.0) = 1
    round (1.5) = 2
    round (1.6) = 2

    round (-1.0) = 1
    round (-1.5) = 1
    round (-1.6) = 1

    Rounddown(x)
    Rounds to the smallest whole number less than or equal to “x”.

    round (1.0) = 1
    round (1.5) = 1
    round (1.6) = 1

    round (-1.0) = 1
    round (-1.5) = 2
    round (-1.6) = 2

    Some Extra Stuff

    • Revit allows you to use integers, decimals, fractional values, and parameter names in formulas.  You can enter dimensions in feet and inches just like you do in dimension strings.  Remember that parameter names are case sensitive.
    • You can enter a value in a formula essentially locking it across all types.  This is an alternative to locking the dimension in the model.
    • Instance and Type parameters can not be used in the same formula.
    • It’s a good idea to not name your parameters with any of the mathematical operators in this list.
  • Revit Families 302 – Naming and Grouping Parameters

    I started a post a couple weeks ago on tips for creating families in Revit but I didn’t get very far.   Our friends over at Inside the Factory are more disciplined bloggers than I and beat me to it. Erik Egbertson put together a great post of Family Editor Tips.  He talks about flexing a family, placing Constraints Consistently, not over constraining, avoiding chaining references, shortcuts to duplicating elements, shortcuts to creating dimensions, labeling shortcuts, and a couple other tips.

    Initial Setup and Naming of Family Parameters

    One thing that Eric didn’t cover in too much depth was naming and grouping of parameters.  I also use Eric’s programming syntax method for naming parameters except I usually capitalize the first letter.  It doesn’t make much difference really, I just like the look of it in my parameter list.  For example, “WindowTrimWidth” instead of “windowTrimWidth”.  Although Revit supports parameter names with spaces, I think having your parameters as one “word” makes writing formulas easier.

    The first thing I do when setting up a new family is place all of my reference planes, dimensions and parameters.  I flex the model with the reference planes and make sure it works.  If it does then I’ll start modeling the geometry.

    When I first add parameters I don’t write out the whole name for parameters that I know will involve some calculations.   Sometimes formulas can become quite complex:

    if(and(LoopOne, LoopTwo), DepthDefault, if(or(LoopOne, LoopTwo),DepthDefault- DepthBikeLoop, Diameter))

    Make one error in typing this out and you have a hard time debugging it.  I start with naming my parameters with shortened names like LO, LT, DD, etc.  This makes the structure easier to see.

    if(and(LO, LT), DD, if(or(LO, LT), DD – DBL, D))

    Once I know everything is working I rename the parameters and they are automatically updated in my formulas.

    Grouping of Family Parameters

    Currently Revit only allows us to categorize parameters in a set list.

    • Analysis Results
    • Analytical Model
    • Constraints
    • Construction
    • Dimensions
    • Electrical
    • Electrical – Lighting
    • Electrical – Loads
    • Electrical Engineering
    • Energy Analysis
    • Fire Protection
    • Graphics
    • Green Building Properties
    • Identiy Data
    • IFC Parameters
    • Layers
    • Materials and Finishes
    • Mechanical
    • Mechanical – Airflow
    • Mechanical – Loads
    • Model Properties
    • Other
    • Phasing
    • Photometrics
    • Plumbing
    • Rebar Set
    • Slab Shape Edit
    • Structural
    • Structural Analysis
    • Text
    • Title Text
    Analysis Results
    Analytical Model
    Constraints
    Construction
    Dimensions
    Electrical
    Electrical – Lighting
    Electrical – Loads
    Electrical Engineering
    Energy Analysis
    Fire Protection
    Graphics
    Green Building Properties
    Identiy Data
    IFC Parameters
    Layers
    Materials and Finishes
    Mechanical
    Mechanical – Airflow
    Mechanical – Loads
    Model Properties
    Other
    Phasing
    Photometrics
    Plumbing
    Rebar Set
    Slab Shape Edit
    Structural
    Structural Analysis
    Text
    Title Text

    I’m glad that Revit doesn’t let us customize this list, it would just complicate things even more.  Eric reminds us to “choose a pertinent parameter group for your parameters,” but what does that mean?  Really, it depends on your office.  I would recommend creating a standard.

    I discourage the use of the “Other” category because it ends up being a trash bin holding everything.  “Dimensions” is obvious, but I only put parameters in this group that are relevant to the user of the family.  I use “Analytical Model” for any behind the scenes calculations or dimensions that the user of the model doesn’t need to bother with; unit conversions, dimension calculations to keep the model from breaking, etc.  I have also seen “Model Properties” used for this.  If I have toggles for the visibility of different components I put those under “Construction“, if I have a toggle for something that is graphical only, like in an annotation family, I put that under “Graphics“.

    Tomorrow we will look at using formulas in families.

  • Revit Families 301 – The Struggle of the BIM Manager

    frustratedOkay folks, this is a 300 series course.  We’re not messing around anymore.  Families are one of the most powerful and dangerous things in Revit and I think they deserve some discussion.

    One of the greatest challenges I have as a BIM manager is the management of Revit Families.  I’ve tried a number of different approaches over the years and I have yet to find one that I like 100%.  I’ve always worked to establish a set of approved office standard families and have had an internal review and approval process.  The standard families account for probably 90% of the families needed on a standard project, the problem lies in the 10% of custom families or the 90% customization needed when we do a new building type we haven’t done before.

    In the early days I mistakenly thought that if I left modelers in the dark on how to edit families they wouldn’t do it.  I could train a couple of key people to do all the family modeling.  As you may expect, that didn’t work for long.  People didn’t want to go through the hassle of having someone else make and edit a family, especially when they are under pressure from a project manager.  They created families and edited the families themselves but because they didn’t know what they were doing they created families that couldn’t be reused without extensive reworking.  Usually they spent an extensive amount of time going in circles or not enough time to do something right the first time.  Days later when they would go to make a dimension change the family would break.

    The other strategy is train everyone on editing families and hope for the best.  This requires a lot more work for the BIM manager, training, supervision, review, etc.  However the entire staff ends up more educated and because they know the inner workings of the family they can use them more effectively in the building model.

    In general the people working on your models are intelligent, want to learn, and want to do a good job.  In the long run teaching them how to create and edit families goes a lot further and will save you time.