Align Two Surface UV's


Background (Optional Read)
I am bringing a surface from Revit and unrolling it. I am then drawing my CW as curves in plan and finally attempting to project my curves back onto the Revit Surface. From here, I would import my CW as a mass and create a Curtain System in Revit.

My Issue
The UV of my unrolled (flat surface) and the UV of my Revit Wall don’t align. So it’s making it extremely challenging to project my curves onto the surface. Maybe I’m overthinking this, but how do I resolve this issue?

If you open the script, the Rhino.Inside components will be missing but they are NOT necessary for this issue.

2023-11-20 - CCR Rhino CW’s.3dm (81.3 KB)
Curtain Wall (29.2 KB)

Thank you,

I have found this potential solution but I can’t seem to understand what’s being down here or how to rebuild the script. I’ve tried to rebuild his script from the snip. Not sure If I got it right though,


Test (12.3 KB)

Sorry, I’m just replying to myself now; I’ve simplified this to hopefully better explain my issue.

Even if I add a couple of manual steps in between, my projection gets trimmed and isn’t in the exact spot as my unrolled surface. Not sure how to reroll this properly.

Test Projection (14.9 KB)
2023-11-20 - CCR Rhino CW’s.3dm (87.3 KB)

Hey @rismail88, did you try flipping one of your surfaces and did it work?

Thanks for the reply René, I have tried to flip the surfaces and it didn’t work because the UV orientation of both surfaces is completely different. Even after parameterization. Look at the panels after Evaluate Surface.

Yeah something is up because even after aligning UVs the mapping is odd:
It’s there, just doesn’t follow the surface.


This discrepancy consistently results from all these methods:

  • map to surface
  • splop
  • sporph
  • curve on surface
  • meshmap > nurbs curve PWK

Though this isn’t how I’d usually do it, it made it work - I think:
Curtain Wall (24.0 KB)

1 Like

This script works great; thanks for sharing.

Do you know why the curve always shows up backwards on the surface? The angled section is supposed to be on the left-hand side. It’s showing up on the right.

Thank you,

1 Like

If Rhino could talk it’d probably say something like “I’ll let you do whatever you want but it won’t be straightforward” :sweat_smile: - and if I knew enough like others in this forum then I’d probably have a better answer for you :slight_smile:

Good to know.

As you might have intuited, it’s a plane/orientation/rotation (or bad luck) reason.
Your 2D surface points ‘up’ while the 3D one points ‘negative X’ (in terms of their normal vectors).

Rotating/flipping the surfaces manually in Rhino does nothing, but if (in grasshopper) you rotate the target surface about its own vertical axis OR the mapped planar curves about the same vertical axis, and then re-project, it takes care of it:
Curtain Wall (23.9 KB)


1 Like