BILT Speaker

BILT Speaker
RevitCat - Revit Consultant
Showing posts with label face. Show all posts
Showing posts with label face. Show all posts

Saturday, 20 February 2021

Cut with Voids when Loaded in Revit

When this new feature appeared in Revit about 10 years ago (v2012?), it was always a bit mysterious - it had many confusing restrictions about how and when you could use it

So, what is this family property that shows up in the Family Editor in Revit?

Autodesk Help in v2021:

"Cut with Voids When Loaded: When selected, voids created in the family will cut through solids. The following categories can be cut by voids: ceilings, floors, generic models, roofs, structural columns, structural foundations, structural framing, and walls."

That's it - all the help you will get from Autodesk on this one!  It hardly explains much about how to use it.  If you dig deep you might find more information - but there is no link to it.  

It is inaccurate in that it says "voids . . . will cut through solids".  It should say "may cut. . . "
It is also not up to date with its category list.

In Revit the tool-tip is pretty much the same, although it does at least have a diagram that shows why you might want to use it:

This is a classic example of inconsistency in help and tooltips.  I remember during beta testing that we asked for the ability to cut holes in worktops using this new feature - worktops are usually in the "Casework" category, which was not included in the list of cuttable categories.  Luckily it was added as a further enhancement a year or two later - but Casework does not appear in any lists from Autodesk, even though it was used in this illustration.

[Edit] If you dig deeper in the Autodesk Help files under 'Cut Geometry' , it does have an updated list of categories that can be cut by this method:

 "You can cut objects in a project when a family with unattached voids is loaded.

Objects that can be cut include: Walls, Floors, Roofs, Ceilings, and Structural Framing, Structural Columns, Structural Foundations, Casework, Furniture, Specialty Equipment, and Generic Models."

I recently had a requirement to use this "new" feature in a Revit family - but I could not get it to work.  So I decided to revisit exactly how to make it work:

How does it work?

  • A void form has to be created in a Revit family

  • Tick the "Cut with Voids When Loaded" checkbox in the family parameters
  • The category of the family is not relevant to this feature

  • Load the family into a project
  • Place the family in the project in a location where the void intersects with an element in the model


 

  • The element will not be automatically cut
  • Use the "Cut Geometry" command

  • Select the element to be cut, then the family with the void in it
 
  • The element may or may not be cut, depending on the following rules:

Rules and Exceptions

  • The element to be cut must be of one of the following categories:
    • Casework (not listed in the help file or tooltip),
    • Ceilings, 
    • Floors, 
    • Furniture (not listed in the help file or tooltip),
    • Generic models, 
    • Roofs,
    • Specialty Equipment (not listed in the help file or tooltip),
    • Structural columns, 
    • Structural foundations, 
    • Structural framing,
    • Walls
  • The void in the family must not be cutting anything in the family - this is the rule that caught me out recently.  To get around it I had to create two voids:
    • The first one to cut elements in the family
    • The second one to cut elements in the project 
      • [Edit]There are two ways to prevent the void from cutting elements in the family:
      • 1. You have to create the void in a location where it does not intersect any geometry,
        • then move it to the correct location - it will not cut any intersecting geometry;
      • 2.  Or create a solid where you want it, and change it to a void - it won't cut unless you tell it to [Thanks to Simon Weel for reminding me of this method]
 

  • [Edit] I have had problems with saving families that only contain a void element that is not cutting anything - but I think that only happens for in-place families.
  • Cutting only happens in a project
  • This capability does not work in the family editor - when one (cutting) family is nested into another family.  This is a very frustrating restriction - it means that you have to build additional voids into the parent family, which is a pain if you have complex angled geometry.

Once you understand those rules and limitations, you can use this capability to get families to selectively cut elements in a project.  It does have some advantages over 'Face-Based' families that also allow you to cut into a host element:

  • You can decide whether you want individual elements to be cut or not
  • It does not need to be hosted  - it can be placed directly in the model with its own parametric controls (height etc)
  • It can be moved away from or to an element to be cut (it remembers the cutting status if moved away and back)
  • This can be added to existing families (converting to face-based requires recreating families)
  • The void can be anywhere in the family - it does not have to be related to a host face in the family (as face-based families do)


I hope this saves time for anyone who cannot get this feature to work properly.  

In this example I have carefully made the void slightly bigger than the basin for clarity in the illustrations - and to make sure that water runs down the side of the basin into the casework and rots the timber.  I suggest that you make it a closer fit or use lots of silicon to seal it.


Sunday, 20 May 2018

Revit Ideas Wishlist Voting

Autodesk created the 'Revit Ideas Wishlist' a while back - yes I know it is flawed and has a lot of rubbish on it.  However, I know that the Revit Product Managers do actually look at it and monitor the votes.  It is not the only thing that decides what goes into future Revit upgrades but it contributes to the discussion - so I like to support it, in particular the sensible ideas that are posted on it.

I do believe that we should mainly be voting for things to be done to the core software that cannot be done by API, Dynamo or Add-ins - as those things can be done quickly by others (or yourselves).

Here are some of the better ones that I think should be voted up (including some that I have posted):

Please go to the Revit Ideas forum and vote for any of these ideas that you agree with:

Model Stability (& Pins)


Allow us to change 2D extents of pinned sections - just like we can for grids and levels.  Then we could leave those sections pinned all the time and not risk losing attached annotation.

Persistent Pins - pins that reinstate themselves after you have modified the element once

Parameters


#1 wish regarding parameters is to allow Shared Parameters in Key Schedules  - this would unlock so much potential in Revit, and the API just can't get in there to solve it.

There are several outstanding Global parameter requirements:

The first is oh so simple, but would be a huge deal for us:
Enable global parameters to associate to Floor ‘Height Offset from Level’ system property

Enable global parameters to associate to Array Numbers

Enable creation of an Area Reporting Parameter for use in Global Parameters

For more detail  refer to Global Parameter wishes


Stairs & Railings


There are so many things that need to be fixed on stairs and railings, that I have created a list of requests just for Stairs and Railings.

There are a couple of basic ones that just need to be done to improve stair arrows - not much more than bug fixes:

 

Families

Are you intensely irritated by the default setting for face-based family placement being 'Place on Vertical Face'?  I think that 99+% of users would like it to be changed (not to mention BIM managers who have to deal with confused users not understanding why they can't place ceiling fittings).
Vote her to  make the default 'Place on Face'

 

Form Creation

Creating forms in the Conceptual Massing Environment is fraught with problems - some of them could be alleviated by the following two capabilities:

Control profile order during form creation

Select Path during form creation

There are oh so many more things that need to be fixed in Revit - but since Autodesk concentrate on such a few, we need to target which ones would genuinely benefit the most people.  And we shouldn't ask Autodesk to spend time on things that can be done by some other means (API, Dynamo etc).

Have a look at the latest updates to the Autodesk Revit development roadmap to see what is planned or has been recently delivered.

Friday, 27 March 2015

Moves with Nearby Element - Non-Hosted Revit Families

Following on from my previous post about 'Moves with Nearby Element' in Revit, here is another use case for this under-appreciated feature:

Plumbing Fittings: Use 'Moves with Nearby Element' Instead of Wall-Hosting

The logical Revit methodology for placing plumbing fittings is to make them "wall-hosted" - and that is how most of the Autodesk supplied libraries are set up.  The obvious reason for doing this is the fact that wall-mounted basins, WCs, urinals etc need to be attached to a wall - and when that wall moves, so should they.
However, many long-time Revit users and BIM managers are trying to avoid using wall-hosted families for a number of reasons:
  • Wall-hosted plumbing fittings will be deleted if the host wall is deleted - seems logical, but how many times has this happened unintentionally?  It is especially easy to do when the fitting is off screen on a very long (or high) wall.  The plumbing fittings may have all kinds of data and annotation attached so it is no joke replacing them.
  • If the wall and fittings are part of groups, you will almost certainly run into trouble sooner or later.  Someone will inevitably put the fitting in a group, but not the host (or vice-versa);  worse still, they could be included in different groups.  Either way, a hosted object and its parent not in the same group becomes very hard to manage, and you will most likely end up with conflicts of group ownership or ghosted plumbing fittings (excluded from an instance of the group) - a very messy situation that only expert Revit users can resolve.
  • Non-hosted plumbing fittings can be used in varied situations like in vanity units without needing to have two versions (non hosted & wall-hosted), or nested families
There are a number of ways that people avoid these issues:

Face-Hosted
One technique is to create "face-hosted" components, which do not get deleted when their host is deleted.  I am not so keen on this option for a few reasons:
  • 'Always vertical' is not an option with face-hosted families, so they may become hosted directly to floors instead of walls, in the wrong plane.  
  • They also need to be modelled in the 'wrong' orientation, which is counter-intuitive
  • The plumbing fittings can end up above the view range cut-plane, if you don't adjust the height first (there are clever ways to avoid this with non-hosted)
  • The extra placement options can cause confusion 
Face-hosted placement options
Non-Hosted
My preferred technique is to use non-hosted plumbing fittings, in combination with 'Moves with Nearby Element'

Advantages:
  • Components are not deleted when wall is deleted
  • No issues with missing hosts in groups, automatically excluded members, or group edit ownership clashes
Disadvantages:
  • Components will not rotate with the wall when the nearby wall is rotated
  • User needs to remember to tick the checkbox (either during or after placement)
 
  • Angled placement is not so simple - user needs to force component rotation (using the space bar):
Angled placement
  • Hover the cursor over the wall edge
  • Press the space bar while wall edge is highlighted - component rotates to match wall
  • It even works on curved walls

Work Plane-Based
Some people like to make their (non-wall-hosted) plumbing fittings 'Work plane based', so that they can avoid issues with them getting 'stuck' to floors that Revit automatically hosts them to - an issue that occasionally shows up when components are grouped and copied to other levels - but that is a bug, which should not happen.


Unfortunately work plane-based families do not allow 'Moves with Nearby Element' so you cannot combine the two techniques.