When a Door Closes...

Its likely missing a parameter or the geometry of the family isn’t consistent.

Sort of a continuation on “Content, Content, Content” – I’m just passing along some recently obtained information in case anyone can benefit from this experience. A lot of this falls under the heading of “Things that I used to do, but I don’t do no more…”

(Points if you heard Stevie Ray Vaughan in your head right there) 

It’s one thing to hack/mod a family on the fly, or even take a week’s worth of nights, to build out a branded hotel specification from an established library of parts. (language is already established) 

It’s quite another to walk the path into the unknown of full library development. 

The means are the same. The level of consideration of possible outcomes is nearly infinite. (Some easier than others). 

The resulting family just needs to work, in that model, for that project, in that time. 

The universal library project is a whole different ballgame. 

Workflow

Most of Revit is been backward and upside-down. Take what you think you should do, reverse the order of operations – and you’ll probably get closer to a desired result. Draw a gridline from top to bottom. Go ahead. 

Sorta like the program that they use for the drawing section of the ARE.

*Tip, if you’re taking it, retake the sample tests until you can solve the problem 2-3x in the given time frame. That way when you have to scrap the design and start over because the software something screwed up – there’s no anxiety…

For anyone questioning all of this, let me just say that I’m completely aware that I’m 6+ years behind the curve, and there are a multitude of libraries out there on the market for sale. All of them accomplish the same results in varying ways. This isn’t anything new to the planet, and its not the million $ idea that I’m just praying comes to me in a dream. 

I covered the detail library rebuild. I covered a good portion of the casework library collection… 

So far, the workflow has been:  

  1. Build one, flex & test it – build out options
  2. Find an error requiring you fix everything that you just made – build out 10 more. (Repeat 6-8x) Accidentally load a shared component in and not notice until 20 doors later… 
  3. Build out a ‘variable’ version after all geometry has been established. 
  4. Question your sanity for being dedicated to these endeavors. Reminder that most of the ‘free’ stuff is so convoluted with manufacturer extras, or modeled so poorly that they break immediately. That this is a worthy pursuit, even if it doesn’t mean the ability to buy a Lambo at the end of it. 
  5. Have just enough ‘fun’ doing this that you start wondering if its a better move to skip paying rent this month and buy someone’s library. Sigh, repeat step #2. 
I’m vacillating between steps 2-5 at the moment, does it show? 
Lessons Learned (and mistakes not to be repeated)

I’ve been retooling the same pile of parts on repeat for weeks now. Here’s what happened: 

Step #1: It’s ALWAYS – Build all the parts. Establish a methodology for creating the desired end result. Helps to define the end result here. (I kinda forgot that part).

I did a little research to make sure that the path that I was on wasn’t wholly unwarranted and started collecting, fixing and saving out a library of components. The ‘fixing’ part is what gets you into trouble. With most of these items – its paramount that they’ve all got the same base geometry, parameters, etc. If there’s something to derail your efforts after you’ve made the 300th version – this is where it came from. 

Step #2: Establish methodology for employing these constructed pieces into a singular family. If you do this step correctly, you have a way to create a metric ton of content in very short order. This is both a benefit and a detriment if there’s a buried problem in step #1. 

After creating a myriad of components, and just seeing a growing list of door types left to do – on Step #3, I decided to explore functionality a little deeper. What would it take to build these as ‘Super Families’. To create a library that was going to be easier on me personally. 

Anecdotal research from various research that I’d done seemed to praise and denigrate Revit family complexity in equal measure. 

(Hence the first poll I conducted & the sparse sample group and ambiguous results) 

 

From my point of view, when I download a door family from a vendor and you see this (right):

I know, this is minimal, and I can read/write it.

But this can be a problem. 

Not everyone knows what these formulas mean.

If there’s no trust with the author – and its part of a giant library and contains fields that don’t even pertain to a pocket door – that’s also an issue. 

Removable center mullion in a pocket door… Riiiight. 

To make it worse, it might not contain any of the data that the project schedule is looking for, so as functional as it may be – its still not going to accomplish the task without retooling it

Q: What’s worse than snagging a complicated download of something that might not even work – and has no explanation?

A: How about when its pushed into your library already by the firm’s Revit Team and you still have no tutorial, no explanation, and there’s nobody in your office location responsible for making it. Or you’re on your 12th BIM guy in the office in 2 years because of fundamental disagreements with doing stuff like this. 

Without training, assuming that your target audience has the savvy to figure these things out, is going to leave people behind.

To Super or not to Super... To Share or not to Share:

That brings us to Step #4.

Now to increase functionality and options within a given Revit family, that brings us to a cool little feature to select and hot-swap families.

Of course I’m enthusiastically drawn to this path. Either to reverse engineer something really cool, or to find a cleaner way to achieve the same result… 

This results in a functional family with a myriad of options. Semi-Super or So super it gives you an ice cream headache, but the latter requires a commitment to a divergent path. 

One door or 20? 

Well, if you load all the panels into that single family – it gets you a door with options. 

To access those options, you can use a “Family Type” / Label parameter to make those panels selectable. 

Now that’s sweet. Right? 

Well… there are strings. 

IF you add that functionality to the door, AND you built it so it doesn’t get angry or break and has the EXACT parameters in ALL items (see Tip #3), there’s still a decision to be made. 

Instance or by Type?

The end results of this decision can be modified with limited pain points, and only 30-40 times if you change your mind about it.

 IF you make the decision to hot-swap door panels and you choose ‘instance’ (selectable in place) 

THEN the legend tool built into Revit won’t represent the door type placed in the model. You’re going to have to figure out another way to do your door legend or just load the panels in separately for a point of reference. The Legend Tool operates by Type. If the component isn’t shared or a listed type – its not going to show up here:

For those who weren’t aware, you can create elevations in a legend – including Doors, Specialty Equipment, etc.

If you zoom the pic, this is a flush panel door under the variable family that I loaded. Its only going to display the panel that was active when the door family was loaded. 

IF you want this tool to function properly – THEN you’ve got to set the selection to “Type” and create a new family type for every door leaf that you’ve altered. Could be a pain in the ass if you’re not aware of this going in. IF you don’t care about the legend tool – have at it. IF you do, you’re making Family Types to handle this…

ELIF… (else if or Unless)

DoorLegendOops
To Share or Not to Share...

This one is the divergent path. 

Depending on how you chose to handle it – it’s also representative of a pain point. (see Tip #2)

You see, the most effective solution to the super family without aid of programming or add-ins is –  to share all the components. There’s an economy of scale that happens with this route, things get loaded once instead of once per door in the model (think 400+ doors in a larger project x 15 door panels not used).

The pain point comes in with how Revit handles shared components. IF this is your path, ALL items from the Door category will be selectable within the model. This move will limit family sizes, as all the parts are only loaded once, but can get referenced into any door… 

BUT that level of flexibility can kick the door open (forgive the pun) for problems… i.e. parts not built with identical parameters or reference geometry (need that anyway), rogue parts in the wrong category can get selected in the model, etc. 

IF you’re working at a firm where every morning you have to crack open the project and re-pin all the linked files back into place because they’re 150′ to the left and somehow 1/2 a level up from your base model, and there is a real possibility that a chair family is in the door category or vice versa – this might not be your solution. 

This path also has another hang-up. 

Scheduling Shared Parts

Now its one thing if you’ve got a master bed family with shared components, and the base, headboard, mattress, bedding, specialty pillows, nightstands, and associated lighting all needs to be scheduled, or can be easily filtered out. 

It’s quite another problem if you don’t want to see 90% of the parts in a schedule. That requires another parameter built into ALL your shared components to filter them out of that schedule and to re-list them (somehow) in the manner you wish to see them to convey information in a way that won’t immediately trigger 400 RFIs. 

There’s also another issue where all the components now are listed at the root level of the schedule, and not in a line-item the way that a typical door schedule functions. Since opening this particular can of worms, I retreated and I’m leaving this as a “future me” problem to resolve. 

This was all approaching jazz. Invent 75 new rules to explain how it all works… I’m a blues guy. Power with passion and fixed rhythm. 

Build, Rebuild, Fix Fix, Change, Change Back

This gets us to current. Step #5:

We’ve built everything out, fixed a pile of mistakes and errant objects. 

We’ve put them all together in a functional way. Then fixing and repairing, multiple times. 

We’ve explored a path on usability complete with limited market research. Created more problems.

We’ve uncovered problems and wandered this far. Shared parameters, schedules, max usability, offer semi-super alternates… 

In step #4, I took my type library and shared everything to solve a problem. I tested that solution and was presented with another problem. Following that thread means going so far down the rabbit hole toward the functional super-family that it was going to require 100% dedication to solving that problem and abandoning the initial project goals – simplicity with limited explanation.  

The other problem that I’d had, is that in this pursuit – at each juncture – I made dedicated decisions while fixing existing content and creating new.

Going forward and resolving what I’d done was going to take longer than it would be to start the process over. Which also uncovered more things to resolve. 

Sharing in Revit can’t be un-shared easily. Once that family is loaded – you can’t just open it, hit a check box and reload. You’ve got to purge all shared items and replace with a non-shared item. Essentially that means redoing all of it, item by item. What I should’ve done is run a small test case without marching ahead thinking that I’d solved all the problems. 

It wasn’t hubris that brought me here. After a full year sitting on the bench – I’d overlooked necessary steps and wandered too far down an experimental path without keeping watch on all the ways that this stuff can screw you. 

If you’re doing a dozen items, its not a problem. If you’re doing 1200 – it can be detrimental. Lesson Learned. 

As of the time that I’m writing this – the whole process is feeling like the day job used to.

Set out to fulfill a given goal, revise to fix initial design errors,  change in client direction based on ambiguous goals that result in a departure from the stated project goals. Work backward toward the initial intended solution, while thinking about who I can hire and direct to do this for me. 

3 weeks of 12-14 hours a day of this * old billable rate… library is worth… yikes, if only I had the kind of cash to pay me to do this on the client side. Then I wouldn’t be worried about rent money. 

Remarkably True.

One of those universal truths I suppose, my father had one of these placards hanging in his dark room in my childhood home. I unironically had a few of these memorized without the benefit of the experience to understand their meaning. 

6 Phases of a Project: 

    1. Enthusiasm 
    2. Disillusionment
    3. Panic
    4. Search for the Guilty
    5. Punishment of the Innocent 
    6. Praise and Honors for the Non-Participants

I’m not entirely aware of where I am on this spectrum, as most of this list operates under external constraints. The only constraint that I have is time to complete before having to move, and as a sole practitioner – I have only myself to blame.

Tips & Tricks

Tip #1: 

IF the library you’re in the process of building out results in a schedule – USE SHARED PARAMETERS. 

Kinda forgot that bit until I started testing my door library by scheduling it. In-Place parameters don’t translate. “Door Panel Width” isn’t going to show up in a schedule menu unless you put it there. 

Unless you’re working for a millwork company directly, its not likely you’re going to be scheduling casework. 

Tip #2: 

IF you’re exploring an option to use shared components…

and you trust that everyone in the company knows how to use them, and has watched a mandatory indoctrination video showing them how to use it (and not break it)… 

also, you’re 100% guaranteed that the new hire in the corner, isn’t going to make a mass family to represent a wardrobe and does it under the ‘door’ category because it has a door in it. It happens. 

…for the love of God – create a test case with parts that don’t tie to the original collection of parts you spent a week making. This one hurt my soul a little.  

Tip #3: 

IF you’re planning on hot-swapping components in a semi-super door, EVERYTHING has to contain the same parameters. Your standard frame, is still going to need that reference to sidelights, and/or a transom or it’ll freak out. 

Aaa-anyway...

That’s where I’m at. Another entry into the ether, hoping that it helps someone somewhere or generates interest in dialog. 

If someone can come up with a custom door family that they need and don’t have – make a suggestion, I’d love to take something on, give something back and build out this library. 

Back to my digital making pursuits. 

As always, drop a line, hit me up on socials… I’ll be over here making stuff. 

 

Cheers,

John

Share this:

Like this:

Like Loading...