Inconsisten Behaviour of "Add Component (Location)"

Hi All,

I am trying to place wall based sink families, but it seems veriy inconsistend which face of the host wall they are placed on.

Here is what I have tested:

Changing the face that the insertion point is on - this did not have any effect. The insertion point is just projected to the face randomly gets chosen.

Turning the insertion point into a plane and rotating it - no effect. Rotation is always related to the random face.

Flipping the wall using flip element - it seems that the face is chosen geometrically somehow. flipping the wall had no affect on the absolute position of the element.

Changing the Host Face - No effect, even when deleting the element and recomputing.

Using interior and exterior face as input - Elements are created on both faces. When disconnecting either one of the inputs, the element that remains will be on the random face.
Additionally, after going back and forth with this method, the code eventually hits a state where both Elements are placed on the random face and the error “identical elements in the same place” is shown.

Is this a known issue with the revit API or is there something wrong with the Rhino Inside node? @Japhy


Test code


The sink always defaults to the right side

Hi Stork,

I’ll take a look, what version of Rhino are you using and what version of Revit? Do you have a small example file? Thanks

I changed the forum category to Rhino.Inside - Revit.

Thanks for the quick reply. The files should be attached. Let me know if theres anything else I can do to help solve the problem!

[Content]
Rhino.Inside Revit: 1.20.8836.21283 (2024-03-11T11:49:26)

[Expanded Information]
Rhino: 7.30.23163.13001 (Rhino 7)
Revit: 2024.2.10 (24.2.10.64)
CLR: 4.0.30319.42000 (4.8.9232.0)

RIR sink test.rvt (2.5 MB)

RIR_sink_test.gh (14.3 KB)

Hi @Stork,

Does ‘Add Component (Work Plane)’ work better?

‘Work Plane’ here also accept a face reference that will be converted to a Revit Work Plane.
If you provide an element like a wall, it will pick the face closer to the provided Location on the ‘Work Plane’ object to create the Work Plane.

If no ‘Work Plane’ is provided it will create a detached one on the exact same position as the provided ‘Location’.