Get door handle orientation vector

I need to get the door handle orientation vector (the vector of the door handle position relative to the door’s location point). However, inconsistent results will occur when using FamilyInstance.HandOrientation and Door Set Handing nodes, as shown below.
I would like to ask if there are other ways to get the answer accurately?

Thanks.


image

Are you also comparing with FamilyInstance.FacingOrientation as this flips the family on the Left/ Right axis?

Sorry, I didn’t know that handle orientation is related to FamilyInstance.FacingOrientation.
Can you please explain a little bit?

I think I was confused about what you were after - rereading your question you are after a location coordinate for the door handle?

I think there are a few factors why the vector is flipped

It looks like you have a double door family (85+103) x 235 cm which may have been modelled with the smaller door in the ‘primary’ position and it looks like it might possibly be in a curtain wall which may affect it’s settings

The vectors are going to change depending on how the family is hand flipped and also how the door is placed in the model. A door in a 45 degree wall will have X and Y values
image

If you want the location of the handle in coordinates you would need to get an offset parameter value (from door origin), scale the HandOrientation vector by the offset and add to subtract from the location. This does not include height of the handset.
Edit The handing vector typically points to the hinge style. To get the handle location you would subtract the scaled vector

To add to Mike’s points another crucial one is if your door families arent all orientated consistently in default state (e.g. always swing up page, active leaf to one consistent side). If you’re facing that it is a lot harder as you’d need to get the door geometry given facings wouldn’t be consistent by default

Thank you.

In fact, my ultimate goal is to find the direction vector of the dotted arc in the picture relative to the door Location point (that is, open left or right), because I need to calculate the distance between the door leaf and the wall (that is, the 60cm marked in the picture ).
Because I can’t find the door’s left-opening/right-opening properties directly, I think finding the direction vector of the door handle relative to the Location point would be an alternative.


Additionally, I found that even two simple single doors would create inconsistent orientations…:cry:
image

Thank you.
So, after finding the facings by default of the door, how to determine its handle orientation?
In addition, how to get the door’s facings by default?

Honestly the rough answer there is build all your doors consistently. Handle orientation should be possible to determine by getting the family orientation, then rotating that to suit the handing/flip changes.

So get facing orientation, then you can use if conditions based on the handing. E.g. if your door handle always points left/up by default, then you know you would first reverse the facing vector if it’s faceflipped. Then if it’s handflipped, you go 90 degrees right instead of left when determining the actual angle.

I have used a circulation zone family in the door family which are driven by door parameters and requirement calculations and can be used with clash detection to check for clearances

Here is something I prepared earlier regarding door handing
As Gavin has said door families have to be modelled in a consistent manner to be able to use the parameters like handing and facing
Note: Using North American handing convention here. Vectors relate to graph image underneath


1 Like

Thank you.

But there is a big problem. If the door components I use are downloaded from the Internet instead of drawn by myself, is there a way to know the default door handle direction?:cold_sweat:

Thank you.

But which package do the HandFlipped and FaceFlipped nodes come from?

Not really, internet families generally stink unless they’re made by one company (never use RevitCity and ideally not BIMobject). Revit families are just bunches of geometry made by a user with data added by the user - Revit doesn’t have a system for understanding door orientation by default. A company should typically develop their company content with a core goal being consistency, otherwise their automation opportunities will be limited. You could add a parameter to them and tell each door when it’s default state is mirrored I guess, then add this into your dynamo logic.

2 Likes

To mirror what Gavin said: families from the internet need be put though a QA process before they are used for production work. Facing, materials, parameters, etc. all need to be brought to the company standard (how many parameters named ‘color’ or some variation thereof do you have in your project?).

However in this case we can likely use the family itself to evaluate the clearance (and all of it not just the distance to the strike side). Model the clearance options (I recall there are six cuboids) in a new wall based generic model family with parameters to select the right option. You’ll also need a parameter to control the width to control the You’ll want the insertion point of the family to be the hinge point of the door.

Next get every door you want to test, get the curve elements contained therein, and remove anything which isn’t an arc. Pull the center point of the arc - this is the hinge point of the door.

From there find the host wall, project the point into the wall, and use the wall as a host to create an instance of the family at the projected point. Next adjust the parameters for the height and length to match the original door.

You’ll have to do some work on the lacing and list levels… list management will be a must. Not an easy ‘first graph’, but you’ll grow a lot by building this out. Give it a shot and see where you get.

3 Likes

They are from Orchid Nodes which are self installed rather than via the Package Manager

1 Like