Troubleshooting: srf split doesn't work correctly

Hi all,
I have a problem with surface split component. I used BBX to find the intersection curve among two sets of surfaces. Then i use this curve to trim the second set of surfaces. But it works only in some cases. (not all the values of the initial slider )

Could you tell why?

srf (39.0 KB)

You didn’t internalize your geometry params.

1 Like

You’re allright @Joseph_Oster
I upload it again. srf (479.9 KB)

I have no idea what’s going on deep inside the cluster that takes 10.1 seconds on the profiler!?? More clusters within clusters, for what? Otherwise, the two methods give the same result:

1 Like

you should really name your clusters if you plan on going lke 8 layers deep.

i found something wierd inside this cluster:


inside you do a ‘InCurve’ check on a list of open curves which will always fail i don’t know if this is intended but i don’t really inderstand your definition because its seperated in so many clusters. I added a ‘join’ maybe this was the problem. Could you explain what you mean by ‘the definition not working’ ?



I rewrote the part with the intersections to concentrate only on it and for the moment ignoring your data-handling done in the clusters. A few notes:

it’s a good idea to cut out the unwanted parts of your outer srf before you do the brep stuff so i did that here.
the holes in your ‘copertura’ surface sometimes cause the intersection to fail so i capped them. Have a look if this fits your needs: (450.0 KB)


1 Like

maybe I’ve done too many clusters ahah anyway i’ve done in this way because the definition was becoming too messy…

anyway the final objective is to create a glass panelized curtain wall. with panels of xy dimensions;

i went on in the definition and it seems it works, even if it’s becoming a bit complicated!

I upload a more open definition. I translate all the notes in the panels in english. Have a look, I hope you understand better in this way.
srf split_open (957.9 KB)

thank you @lando.schumpich for the time! i’ll see your changes and
I’ll let you know

This is the same definition i posted, more open and with english notes. Take a look
srf split_open (957.9 KB)

In the definition now you can see better what i meant to do:

If you dont understand something I’ll try to explain better.

The definition works, but it’s a bit complicated. Maybe (I think sure!) there is a clever way to do it. Any ideas? :wink:

I didn’t understand all the part i grouped in red, what did you want to do?
I cancel it, and it seems it doesnt change anything (894.4 KB)

well the part in red cuts the bottom curve which you ‘divide length’ to size before doing the heavy lifting with breps its just some optimization. Try to take a look again because the results of our definitions are exactly the same but this one takes around 500ms to compute while the one with the many clusters took around 4000.
On the understanding part: i don’t understand the purpose of all your boolean operations, do you intend to extract some data other then just the geometry? if not i guess most of it is not really needed to achieve the geometry.

I found out what causes the problem with both ‘srf split’ and ‘split brep’:
ýour roof srf has a lost of “inner edges” and when one of those edges exactly matches the start or end point of your cutting lines two different things happen:
-‘split Brep’ returns 3 instead of 2 results, this can be handled with some data sorting i did that in the new definition
-‘srf split’ will return 2 “wrong” results

i tested baking the components in rhino and doing it manually and it works just fine so maybe this is a bug @DavidRutten?

Here is a better documented version of the definition: (455.2 KB)

1 Like

I took a look again and i concentrate to the first part.
Here the definition with notes: (1.3 MB)

Maybe i didnt understand something, but i guess the part in red dots a removed is not really needed, but make only the definition longer. :thinking:

I’ll see the next part of the definition and i’ll tell you

The purpose is to get a panelized surface, trimmed by the ceiling (that is not the final form but just a ‘sketch’. So i used the Boolean operations.

At the end I want to create a facade with glass panels. I’m trying to do with the simplest definition as possible.

see the attachment (1.3 MB)

I rewrote the second part:

  1. I replaced DivDist with DivLenght to get the same lenght of curves

2) I use a combination of Shift List with W input set false, and S input set respectively -1 e 1; it’s a simpler way to get the same lines :wink:

ill see later the third part :slight_smile:

I’ve just seen the third part.
I do not have much experience in using expression, and I don’t figure out what does the expression here.

Can you explain please? Thanks!

the part in the red dots is for getting rid of the parts of the bottom curve you dont want anyway so you don’t have to 1. calculate the lines, 2. calculate the extrusions, 3. calculate the cuts, 4. find no cuts, 5. sort out the extrusion which didn’t got cut. of course the result is the same, it just takes more computation time

the expression is for the cases where brep split gives the wierd results. in words it reads something like:

If the number of elements in a tree path is more then 2, cull out the item with index 2, if not cull out the item with index 1. Which for this dataset gives the results we want. the expression also sorts out the uncut pieces because when a tree path has only 1 item in it it will be sorted out.

Hi @lando.schumpich thanks for the timely reply.

I’ve seen again the definition but i’m sure now the part in red dots, at least put in this way, is useless.

Infact in that part you calculate an extrusion with wich you want to split the curve from list item But can you see in the picture below?

the extrusion does not intercept the curve. So you get in the output C of split with Brep the same input curve.
So why all those components??

as regards instead the expression, even if i still have to get used to use expressions, it’s a very clever solution!

Thank you for now and see you soon

‘Brep | Curve’ does find the intersection Points which are needed to split away the curve ends, check the Point output. ‘BCX’ and ‘Split’ do different things so they shouldn’t be interchanged.

I use ‘Split with Brep’ in the definition and it does exactly what i described i don’t get where our misunderstanding is.

So it’s very strange, because i have different results! :thinking:
1)i have no points from BCX
2)i have only 1 curve from surface split

here the definition of the screenshot (1.3 MB)
isnt the same of your definition?

I get your result if i plug-in the Boutput of cap holes in both BCX and split

Maybe you meant this way? and so however we dont need the part in violet group.
Anyway it’s just a curiosity, because i’m going on in the definition and we’ve already solved that problem :slight_smile:

i found it:

when i open your gh file with RH6 it works just like i described it.
when i open it with RH5 it breaks just like you described it.

there seems to be a change in how ‘Sort’ works. Change the list Item Index after ‘Sort’ from +1 to i like you see in the picture and it will work again.

1 Like

yes it works

Nice job.

1 Like

@lando.schumpich if you’re interested, i can send you the next part of the definition. I think it works quite well for what i want but maybe we can improve it.

sure thing i’m interested

1 Like

Cool. I’ve just create a new topic here, take a look:
Improve definition| panelized curved facade