Face intersection

Face intersection

Anonymous
Not applicable
1,555 Views
4 Replies
Message 1 of 5

Face intersection

Anonymous
Not applicable

Hello everyone.
I have a model with adjacent masses (see image bellow). I want to identify the vertical faces of each mass that aren't in contact with another mass.

I know that face intersection doesn't works as supposed, but I've tried  Revit API all intersection options from Revit API to solve this problem but none was successful...
Any ideas to solve this with the API? How would you identify the vertical faces of each mass that aren't in contact with other faces?

Capture.PNG

0 Likes
Accepted solutions (1)
1,556 Views
4 Replies
Replies (4)
Message 2 of 5

jeremytammik
Autodesk
Autodesk

Can you describe more precisely what you want to achieve?

  

Assuming that the very simplest wall, floor and ceiling slab has six faces, and could have ten times that amount each in case of a couple of simple openings, you have a large number of faces to analyse.

  

What output would you like from the algorithm, and why?

  

By the way, if you limit this to vertical faces only, the problem can be vastly simplified:

 

One step of simplification is to just analyse the projection of the face onto the XY plane.

 

Then you are no longer dealing with 3D faces in 3D space, but simply a collection of 2D lines in 2D space.

 

Another simplification step might be to process the analysis level by level.

 

Alternatively, since most of the levels look identical, you could analyse just one single level.

 

I hope this helps for a start.

 



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

0 Likes
Message 3 of 5

Anonymous
Not applicable

Hi Jeremy,
Thank you for your message.
Yes, I've reduced to only vertical faces and planar faces.
The model is only built with the masses as you see in the image. Each mass is a room of the building, it gives us all the information we need to quantify and analyse the building without the need to draw every wall, slab, room, etc. This kind of models are used in early stages of a project to explore ideas and functional schemes.
The only data we can't extract from this masses is the area of the face that is in contact with the exterior, that will give us the facade area of the room.
I've thought that the easiest way was take each mass, select all the masses intersecting it, then intersect all the faces to detect the one that isn't intersecting any of the other faces.
I've tried other unsuccessful approach and know I'm out of ideas.

0 Likes
Message 4 of 5

jeremytammik
Autodesk
Autodesk
Accepted solution

Thank you for the explanation. That clarifies a little.

 

To check: you have a bunch of small masses, each representing a room. They are all contained within larger masses representing the buildings housing them. Your goal is to determine the facade area of each room. 

 

Correct?

 

I repeat: you problem will be vastly simplified by reducing the 3D task to a 2D one. For each level, you have a constant height for all the rooms and their facade areas. All the faces of interest are vertical. Therefore, all you need to analyse is the vertical projection of the 3D faces into 2D lines in the XY plane. The results of the 2D analysis can be multiplied by the height of each level to obtain the 3D surface area.

 



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

0 Likes
Message 5 of 5

Anonymous
Not applicable


Yes you got it right, that's what I'm trying to do.
I agree it would be easier to take the 2D projection, I also can simply get the curves from the base perimeter, but the masses are not always regular in height, we have some double height rooms, and sloped roof masses. Sometimes a mass can be intersecting another mass that is based in a different level
So I would need at least to intersect the base plan with the surrounding masses.
I'm not sure if I'll be able to get the plans and intersect them with the solids, also it makes a lot of intersections, but I'll try it.
I'll let you know if I can make it work.
Thank you.

0 Likes