# Reverse Face Always?

**URL:** <https://forums.sketchup.com/t/reverse-face-always/43460>\
**Category:** Pro\
**Created:** [April 23, 2017, 8:09am UTC](https://forums.sketchup.com/t/reverse-face-always/43460 "2017-04-23T08:09:01Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![ecati](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ecati/32/28643_2.png) [@ecati](https://forums.sketchup.com/u/ecati)\
**Post date:** [April 23, 2017, 8:09am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/1 "2017-04-23T08:09:01Z")

</div>

The surfaces I draw for the first time are always drawn in reverse. I always have to reverse it. Are there any settings?

 ![](https://global.discourse-cdn.com/sketchup/original/3X/6/3/63f0d829371d0f08050eba692ae7091bf4570570.gif)

---

<div class="post-metadata">

**Author:** ![IanT](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/iant/32/92023_2.png) [@IanT](https://forums.sketchup.com/u/IanT)\
**Post date:** [April 23, 2017, 8:26am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/2 "2017-04-23T08:26:37Z")

</div>

In SketchUps mind they are the correct orientation as it assumes you will push/pull upwards. This “bottom” face is then the correct way round.

---

<div class="post-metadata">

**Author:** ![Aerilius](https://avatars.discourse-cdn.com/v4/letter/a/e19b73/32.png) [@Aerilius](https://forums.sketchup.com/u/Aerilius)\
**Post date:** [April 23, 2017, 8:54am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/3 "2017-04-23T08:54:34Z")

</div>

It is true that this has always been like this although it is annoying.

While pushpull would be an explanation, we do not always pushpull faces on the ground plane. Like in proper software design, if pushpull requires a certain face orientation, it should be implemented in the PushPull tool, not in the drawing tools.

---

<div class="post-metadata">

**Author:** ![ecati](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ecati/32/28643_2.png) [@ecati](https://forums.sketchup.com/u/ecati)\
**Post date:** [April 23, 2017, 9:21am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/4 "2017-04-23T09:21:51Z")

</div>

I agree with Aerilius

---

<div class="post-metadata">

**Author:** ![eneroth3](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/eneroth3/32/1222_2.png) [@eneroth3](https://forums.sketchup.com/u/eneroth3)\
**Post date:** [April 23, 2017, 9:30am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/5 "2017-04-23T09:30:56Z")

</div>

Push pull puts the front side outwards regardless of the orientation of the original face (unless in some rare cases in copy mode when the face connects to other faces).

This has always bugged me too. I’m thinking that maybe the purpose for this behavior is that it makes the face easier to see, with the original background in SU being white, but I don’t know.

---

<div class="post-metadata">

**Author:** ![ecati](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ecati/32/28643_2.png) [@ecati](https://forums.sketchup.com/u/ecati)\
**Post date:** [April 23, 2017, 9:56am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/6 "2017-04-23T09:56:48Z")

</div>

I did not understand. Is this just for push / pull? Should not I decide whether to use push / pull? Interesting!

---

<div class="post-metadata">

**Author:** ![Aerilius](https://avatars.discourse-cdn.com/v4/letter/a/e19b73/32.png) [@Aerilius](https://forums.sketchup.com/u/Aerilius)\
**Post date:** [April 23, 2017, 9:57am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/7 "2017-04-23T09:57:33Z")

</div>

PushPull has two modes: faces will either move (leave a hole) or copy (create a closed prism). I first thought this is influenced by face orientation, but it is not (maybe neighboring geometry or edge loop direction).

Made this script (save it as ruby file in Plugins directory):

```auto
=begin
New horizontal faces in SketchUp are often showing the backface. 
This script watches for any new faces and orients them upwards whenever reasonable.
License: see http://unlicense.org
=end
module AE
  module HorizontalFacesUp
    class FaceOrientationObserver < Sketchup::EntitiesObserver
      def onElementAdded(entities, entity)
        if entity.is_a?(Sketchup::Face)
          # Orient all horizontal faces upwards.
          # Initial face orientation seems to depend on the octant and neighboring faces (not just upper/lower halfspace).
          # All downwards oriented (Attention: can be pushpulled down)
          is_downwards = (entity.normal == Z_AXIS.reverse)
          if is_downwards
            has_only_coplanar_neighbors = entity.edges.all?{ |edge|
              edge.faces.length == 1 || # no neighboring face
              edge.faces.length == 2 && (edge.faces - [entity]).first.normal.parallel?(entity.normal)
            }
            if has_only_coplanar_neighbors
              entity.model.start_operation("Orient horizontal face upwards", true, false, true)
              entity.reverse!
              entity.model.commit_operation
            end
          end
        end
      end
    end
    class ModelOpenedObserver < Sketchup::AppObserver
      def onModelOpened(model)
        observer = FaceOrientationObserver.new
        model.entities.add_observer(observer)
      end
      alias_method(:onNewModel, :onModelOpened)
    end
    unless defined?(@loaded)
      observer = ModelOpenedObserver.new
      Sketchup.add_observer(observer)
      @loaded = true
    end
  end # module HorizontalFacesUp
end # module AE

```

You can also test right away by pasting it into the ruby console, followed by `;Sketchup.active_model.add_observer(AE::HorizontalFacesUp::FaceOrientationObserver.new)`.

---

<div class="post-metadata">

**Author:** ![ecati](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ecati/32/28643_2.png) [@ecati](https://forums.sketchup.com/u/ecati)\
**Post date:** [April 23, 2017, 10:11am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/8 "2017-04-23T10:11:03Z")

</div>

For example I keep drawing and I will not use push / pull. When I draw a new surface, I have to make a reverse face again.  
I think the surface should be scribed as the front face and the face should be changed automatically when push / pull is used.

 ![](https://global.discourse-cdn.com/sketchup/original/3X/9/9/99bdfd64d8db551a06c5960a98ddbab51bc7f71a.gif)

---

<div class="post-metadata">

**Author:** ![TIG](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/tig/32/198_2.png) [@TIG](https://forums.sketchup.com/u/TIG)\
**Post date:** [April 23, 2017, 10:54am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/9 "2017-04-23T10:54:11Z")

</div>

Select a face and use Preferences \> Shortcuts to assign a key press to Reverse Faces.  
This is then a quick way to reverse selected faces - it works en mass if needed.

I also assign key press to Orient too…

---

<div class="post-metadata">

**Author:** ![Wo3Dan](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/wo3dan/32/7450_2.png) [@Wo3Dan](https://forums.sketchup.com/u/Wo3Dan)\
**Post date:** [April 23, 2017, 11:28am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/10 "2017-04-23T11:28:49Z")

</div>

> [@TIG](#):
>
> Select a face and use Preferences \> Shortcuts to assign a key press to Reverse Faces.This is then a quick way to reverse selected faces - it works en mass if needed.

And after having that shortcut key, it’s enough to hover over faces with the Push/Pull tool to ‘_select_’ and reverse faces with that specific key. Very fast workflow.

For drawing on the ground plane you get back faces on top.  
For drawing other Z planes (drawing axes moved up or down) and for drawing on vertical planes the orientation seems to depend entirely on the direction of the diagonal when drawing the rectangle. It’s predictable for stand alone rectangles.  
For connected rectangles the orientation depends on adjacent connected faces.

SketchUp (like any other software) can’t satisfy everyone. I like it the way it is, predictable.

---

<div class="post-metadata">

**Author:** ![ecati](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ecati/32/28643_2.png) [@ecati](https://forums.sketchup.com/u/ecati)\
**Post date:** [April 23, 2017, 1:03pm UTC](https://forums.sketchup.com/t/reverse-face-always/43460/11 "2017-04-23T13:03:35Z")

</div>

I like SU too. But he should not decide which tool I should use at my place.  
For example, the surface in the direction of the blue axis behaves differently. The same method should be in horizontal drawing.

 ![](https://global.discourse-cdn.com/sketchup/original/3X/a/e/ae0595013214f9efff847253e0d301f0a6051f37.gif)

---

<div class="post-metadata">

**Author:** ![Wo3Dan](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/wo3dan/32/7450_2.png) [@Wo3Dan](https://forums.sketchup.com/u/Wo3Dan)\
**Post date:** [April 23, 2017, 1:16pm UTC](https://forums.sketchup.com/t/reverse-face-always/43460/12 "2017-04-23T13:16:00Z")

</div>

You have only one groundplane to draw on, but an unlimited number of other horizontal (z unequal to 0) and vertical planes.  
Also, the front\<\>back orientation is for stand alone new faces. Once you reverse a face on the ground the next connected face (should) respect the adjacent face orientation. SketchUp is helpful to you (the user) but it can’t predict anyone’s wishes. They vary.  
If the P/P tool would have the option to choose to draw to front or back face results, wouldn’t that be a drawback by itself. You would have to tell SU what to do each time.

---

<div class="post-metadata">

**Author:** ![Aerilius](https://avatars.discourse-cdn.com/v4/letter/a/e19b73/32.png) [@Aerilius](https://forums.sketchup.com/u/Aerilius)\
**Post date:** [April 23, 2017, 1:20pm UTC](https://forums.sketchup.com/t/reverse-face-always/43460/13 "2017-04-23T13:20:17Z")

</div>

The face that you draw vertically (xz-plane) is ambiguous because the user will see a backface, if not looking from left to right (as in the gif) then looking from the right to left (negative green axis direction). But for the vertical orientation (of a face in xy-plane), humans have a subjective feeling of what is right. And that is defined by the fact that we are all naturally born “above” the ground, and expect the frontface being on top.

I don’t understand where (or if) there is still a problem, are we still searching for solutions?

- we can manually fix individual faces afterwards (_selection_ by hovering PushPull tool + shortcut for _Reverse Faces_)
- we can patch the default behavior with the plugin

---

<div class="post-metadata">

**Author:** ![ecati](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ecati/32/28643_2.png) [@ecati](https://forums.sketchup.com/u/ecati)\
**Post date:** [April 23, 2017, 1:35pm UTC](https://forums.sketchup.com/t/reverse-face-always/43460/14 "2017-04-23T13:35:32Z")

</div>

Thank you so much for responding to all of you.  
Regards.

---

<div class="post-metadata">

**Author:** ![eneroth3](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/eneroth3/32/1222_2.png) [@eneroth3](https://forums.sketchup.com/u/eneroth3)\
**Post date:** [April 23, 2017, 2:50pm UTC](https://forums.sketchup.com/t/reverse-face-always/43460/15 "2017-04-23T14:50:38Z")

</div>

I was about to create the exact same plugin myself some years ago but for some reason never completed it 😛 .

---

<div class="post-metadata">

**Author:** ![jimhami42](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/jimhami42/32/1781_2.png) [@jimhami42](https://forums.sketchup.com/u/jimhami42)\
**Post date:** [April 23, 2017, 2:56pm UTC](https://forums.sketchup.com/t/reverse-face-always/43460/16 "2017-04-23T14:56:18Z")

</div>

I thought I would add this note from the Entities add\_face documentation:

> Note that a special case exists for any face created on the ground plane, in which case the vertex order is ignored and the face is always facing down.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/sketchup/original/3X/f/2/f2a121500b085ed60806607a82720b092d800bb3.png) [@system](https://forums.sketchup.com/u/system)\
**Post date:** [July 24, 2017, 12:17am UTC](https://forums.sketchup.com/t/reverse-face-always/43460/17 "2017-07-24T00:17:53Z")

</div>

Closed on July 24, 2017, 12:17am UTC

This topic was automatically closed after 91 days. New replies are no longer allowed.
