🪟 Issue with window mirroring after model flip – angled windows behave correctly, rectangular do not


Hi all,

After mirroring an entire Revit model (using Revit’s native mirror functionality), I run a custom script that imports and replaces window instances with correct left/right variants (e.g., switching from Window:L to Window:R).

During this process:

  • Slanted/angled windows are mirrored correctly back into their intended orientation.
  • But rectangular windows (standard 90° upright) do not mirror back — they remain in a flipped or incorrect state.

All window families are built the same way:

  • Consistent origin point
  • Proper reference planes
  • Symmetrical insertion
  • No special constraints or parameters on the slanted ones

The script uses NewFamilyInstance to insert the replacement window and may apply flipHand() and/or flipFacing() based on the original instance.

I also experimented with ElementTransformUtils.MirrorElement() and manual mirror-point calculations with mixed results.

:point_right: Question: Why would slanted windows behave as expected, but rectangular ones don’t, despite identical family construction?
Could this be related to the geometry alignment, the way reference planes are picked up, or something deeper in Revit’s internal orientation logic?

Thanks in advance for any insight!

@aaronrumple @mangrove-art @ErikFrits @Jean-Marc Any ideas?

An update:
The model I’m using the script on is built from RVT links, which I bind before running the mirroring operation. However, if I test the script on a brand-new Revit model where I manually draw a wall and then mirror it, the script works as expected.

It seems that in the problematic model, the Mirrored property always remains True for the rectangular windows—even after replacing or mirroring them again.

Could this behavior be related to the fact that the original model was built using linked RVT files? Is there anything specific about linked or bound models that I should be aware of when working with the Mirrored property?