Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question
4

Surface intersection & matching not matching surfaces even in simple use cases.

asked 2017-10-09 23:39:34 -0500

Karthick's avatar

updated 2017-10-23 18:43:16 -0500

I am trying to intersect and match using ruby code.

I have a simple model with one zone and a hip roof on top of it. I am trying to match the roof and living area below it doesnt match.

Both essentially are same surfaces but in different space. Surface in the living zone has 5 co-ordinates and the surface with which it is supposed to match and intersect has 4 co-ordinates.

In this case intersection and matching fails. If the vertices or co-ordinates are same then it matches. I want to know if this a limitation or am I missing something. Updating with a model. image description

I have tried using intersecting this using the measure code i.e.

 OpenStudio::Model.intersectSurfaces(spaces)
 OpenStudio::Model.matchSurfaces(spaces)

This measure doesnt get intersected nor matched. but by using sketch up it does get.

Its seems the API and sketch up gives 2 different results. any help as far how to intersect and match in a measure not sketch up would be greatly appreciated.

edit retag flag offensive close merge delete

Comments

Just do clarify, these are modeled as two separate OpenStudio Spaces? Yes, you are correct that surfaces will only match if they have the same (or rather reversed) coordinates. If they are in same plane and there is a valid intersection, it should intersect and then match. Are you using the Surface Matching measure, or have you written your own ruby code?

David Goldwasser's avatar David Goldwasser  ( 2017-10-10 00:41:49 -0500 )edit

Yes they are modeled as two separate OpenStudio Spaces. I have written my own ruby code which is not different from the measure. They are in the same plane so it has a valid intersection. But it doesn't get matched with the surface below because of difference in number of points that defines the surface. The points are inline and the order is reversed. Is there any way for me to work around it programmatically.

Karthick's avatar Karthick  ( 2017-10-10 18:59:03 -0500 )edit

Would you mind posting a picture of your surfaces that you want to intersect? Or perhaps a model itself so we can try?

Julien Marrec's avatar Julien Marrec  ( 2017-10-11 02:25:30 -0500 )edit

how do I post a picture on the forum I am on a windows machine and I am not findnig any way of posting a pic or attaching a document in the forum.

Karthick's avatar Karthick  ( 2017-10-11 18:51:41 -0500 )edit

When you edit your post, there's an icon that look like an image. Shortcut is CTRL+G

Julien Marrec's avatar Julien Marrec  ( 2017-10-13 05:31:58 -0500 )edit

I have updated the post with a simple model. This happens when I use the methods.

OpenStudio::Model.intersectSurfaces(spaces)

OpenStudio::Model.matchSurfaces(spaces)

Not when I use intersect and match via sketchup. Why doesn't the API work same as the plugin.? API fails to intersect and match this simple model.

These two lines are from the measure used for intersection and matching of the surfaces. These are also used in many other fundamental measures where intersection and matching are required. Please confirm if its a bug and further recommendations @David Goldwasser

Karthick's avatar Karthick  ( 2017-10-23 00:25:27 -0500 )edit
1

I expect the vertical line on the lower space is creating the issue. The ceiling of first story is not an exact (mirrored) match of the vertices for the floor of second story. SketchUp implementation may handle co-linear points differently than the API. I'll ping @macumber, may have ideas.

David Goldwasser's avatar David Goldwasser  ( 2017-10-24 12:45:39 -0500 )edit

I also have other question.

I was going through some code in the plugin for openstudio in sketch up.

Why are we removing / ignoring collinear and coincidental points? I want to know the reason why we deliberately remove/ignore them? @David Goldwasser@macumber

Karthick's avatar Karthick  ( 2017-10-26 00:15:51 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-11-01 14:59:48 -0500

@Karthick can you download and try this measure on your model. https://github.com/UnmetHours/openstu... (You can clone this repository, or download zip of the entire repository, which is just a few measures). I can also directly mail a copy of the measure. Note that this will be slower on large models than the standard surface matching measure.

It is a special version of our service matching measure that does a number of additional features.

  • It looks for duplicate vertices in a surface
  • Duplicate surfaces in a space
  • Mirrored surfaces in a spase
  • It removes collinear vertices in a surface (this is what I think is affecting your simple use case)

Beyond this it also does surface intersection and matching on a single pair of spaces at a time. This is helpful when surface intersection is crashing to identify the specific space combination that is an issue.

edit flag offensive delete link more

Comments

Hi David,

My email is karthick.Narayana@doubleiq.com. The measure you sent me is good but doesn't address issues in a comprehensive way. Please email me or let me know your email ID I want to have a quick chat to you about it. In in-essence surface intersection also creates col-linear points you need to run remove col-linear points before you send the surfaces for matching. Then the openstudio method will match it up in most cases. I am still finding out what is the best way to handle coincident points.

Cheers Karthick Narayana

Karthick's avatar Karthick  ( 2017-11-02 22:24:21 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops

Careers

Question Tools

3 followers

Stats

Asked: 2017-10-09 23:39:34 -0500

Seen: 418 times

Last updated: Nov 01 '17