Debugging "The following sub-faces were not matched with any parent Face"

@chris, is there an easier way to find out which apertures can’t be matched, than copying the aperture names from the warning message and parsing the input aperture list like this:

I think I made something that automates that so you don’t have to copy paste; writing this so I can look for it and not loose this post.

I definitely saved it as a user component but I name things dumb names have the time so have a hard time finding :sweat_smile:


    from ladybug_rhino import fromgeometry as fg
    bad_aps = [ sub for sub in sub_faces if sub.display_name in unmatched_ids ]
    for bad in bad_aps:
        a = fg.from_face3d_to_solid(bad.geometry,1)

I like to save a hb add subface as a ‘snippet’ with metahopper; and use this code because you just have to add an output and boom: shows bad subface geom


Wow, this saves a lot of time. Elegant

1 Like

the ‘extrude surface’ arg input in the fg.from_face3d_to_solid(bad.geometry,1) being a 1 may be a touch overkill but it definitely makes the bad subface geom stand out :sweat_smile:

1 Like

Excellent use of the SDK, @TrevorFedyna . If this becomes enough of a challenge, maybe we’ll add a more official way to get the geometries by identifier. This seems good for now, though.


I’m new so not clear about the solution- where and how do I input the python script in the Gh definition?

Hi @Anyone!

This is a very late reply but in case anyone might still benefit from this:

You want to right click on your HB Add Subface component, click Open Editor… and then paste the code at the bottom of the Python file that will open.


Then press the “Play” button in the top right corner of the popup window to rerun the component with the updated code.

1 Like

Thanks for clarifying @jantheyan !

Hi, I try TrevoFedyna code but nothing happened. The component AddSubface continues in orange color so I can’t working in the geometry. I’m an student of Bioclimatic architecture and I’m learning to process info for architecture projects. The balloon of the component indicated:
The following sub-faces were not matched with any parent Face:
Could somebody give me a hint?

Hi @EHarvey, welcome to the forum!

The most common causes are the opening isn’t coplanar with the host face, using cplane to set the host face as the cplane and projecttocplane can ensure it’s correctly aligned (there’s other ways, that’s a quick method).

The other common issue is that the aperture isn’t fully contained by the host face, ie it either touches the edges or goes beyond. Make sure the aperture is fully within the host and not touching the edges.


Yes, thank you Charlie, I checked all that and it was ok. Finally afterward to check it, I realized it was missing the connection from one component that was causing the error to access honeybee features.

Thanks, in my case the aperture edge was touching the edge of the room.

1 Like

@ jantheyan

I copied the code and pasted it in the editor like this and it gave me the error report. Please how can I solve this?

I am very new to Grasshopper and I have been on this issue for the past two days. The aperture couldn’t find the parent host. Please is their anything I am doing wrong or a better way to achieve this than what I did here?

I got the solution. The problem has to do with my surfaces coplanar

Hi @Rotimy, I see that you have found your solution, but I wanted to touch on the error you received when adding the code to your component.
The error is due to the lack of indentation of the docstring which can just be deleted if desired.
don’t forget to add the output a to the component as well.

I hope that answers any of the questions you had about that.


@ TrevorFedyna. Thank you so much for your input.
This may be a dumb question, I am just new. My add subface don’t have output interface. I copied this cold and pasted it in the add subface component script I have. I ran the code, no syntax error but that did not resolve the problem. Am I to create a new add sub-faces component with the code or what will be the best way to do this?

@Rotimy there are no dumb questions here. To get the additional output you need to zoom into the component until you see the + and - buttons, and add an output with the + as below

and then you will have the "a" output that is needed for the extra code to work.
I’ve attached a .gh with a sample of the component with the extra code (24.0 KB)

Thank you so much for your explanation and the file. Using the file you sent to me, I copied the last line with a = … script from the code editor and pasted it in the panel for the output but I still get the same error message that the aperture did not match any parent surface. Could their be anything wrong with my application or process?