Geometry Intersects Gives Empty Lists (3). Why? (In 47, out 44)

Basicly what title says. Also see screenshot

Can someone explain what goes wrong here?

Hi,

Geometry Intersects Gives Empty Lists (3). Why? (In 47, out 44)

Because the XY plane doesn’t intersect the solids :smiley:

Try Flattening the list with Solids and changing the Lacing of the Geometry.Intersect back to Auto.

I assume that the bottom of the solids is on Z = 0? To check this you can extract the bottom face of the solid and analyze the elevation:

GetBottomFace.dyn (56.7 KB)

@Joelmick

Lacing was on auto before. Did not work then either.

Isn’t the XY plane endless?

And i know the 3 solids which are missing are the three solids on the far right of the screenshot
(the L-shaped on next to the edge and the two next to it).

And yes, i am pretty sure Z=0.

I will try some later this week.

Aha, okay. Yes a XY plane is endless, but if your solids are above the plane, the plane doesn’t cut them.

Can you try lift the plane on half the solid height? Have you tried the graph I send in the previous post to see what the bottom elevation is?

No, did not try your graph yet. I closed the remote desktop (which runs Revit and Dynamo already) already.

FYI.
I used Rooms to generate my solids from. The Rooms are 100% on the same level.
I wanna use the solids to create Curves because the Room.Boundary nodes don’t give me the right amount of Curves. My end goal is to create a Filled Region from one or more Rooms with the same function per apartment. I will post my Graph later.

CreateAreaFromRooms.dyn (65.5 KB)

This is where i left my graph @Joelmick .

Basicly i am stuck grouping the rooms per apartment to create a Filled Region from.

I hope i gave the plane an offset the correct way. Flattening after creating the Solids and Lacing on Auto didn’t help. Also do i use your Graph / fit your Graph in mine to get the Bottom Surface of my Solids.

Edit
I think i used your Graph correctly. I wired my Element.Solid into your Get Bottom Surface part and in the Watch | Elevation of the bottom surface i get 47 times a 0.

Aaah okay, then you will also have the Bottom surface. You don’t need to intersect!

But how do i get the right Surface then to create my curves?
I need Geometry.Intersect for Surface.PerimeterCurves.

In my graph you filter the bottom surface from the solids. I have extended by graph to fit your needs to create Filled Regions by Room parameter.

ColorRooms.dyn (78.6 KB)

I just have one question, as I understand you are creating colored roomplans right? Why not use the build-in Revit function for that?

You are creating colored roomplans right?

No, i am not.

I am creating some sort of Area plans per apartment.
We use the terms verblijfsruimte [VR] and verblijfsgebied [VG].
A group of VR’s where people can ‘stay,’ which a next to each other, are a VG.
I need to know the area (m²) for this VG. Walls are part of this VG area. In the end i also
want to use a Filled Region (///////).

A living room and a bed room can be part of VR.
A bathroom, bedroom, hallway can NOT be a part of a VR.

In example
The area of a VG containing a living room of 4x5 m², a bedroom of 4x4 m²
and another bedroom of 4x3 m² is ~48.8 m. So that is with the walls (4x0.1)
seperating the VR included.

Basicly i am trying to do the same as this, but with a different approach.

I want to use the solids only to create my curve for the boundary for the Filled Region.

Edit
I got it to work using this approach but on the same place the Solids don’t intersect with the Plane
the Boundary of my Rooms is like this

Hmmz

Edit2
No, nevermind. On my second test this failed. I get the following warning:
Warning: PolyCurve.ByJoinedCurves operation failed.
PolyCurves may be branching
.

I am trying to figure out where you stand now:

Okay so I am looking through you graph (luckily I am dutch, so I can follow the terms :grin:). I assume that Bouwnummer is the number per apartment? You now filter out the rooms which are “Verblijfsruimte” in the occupancy parameter. Then you filter them by “Bouwnummer”.

Now you have the Solids of the rooms which have the Occupancy with “Verblijfsruimte” and you want to know the Area of those rooms including half of the Wall? and next to that you want the curves to create filled regions (also with half of the wall?).

I am looking at my default project and the solids are not including the walls, so if you try intersecting them or filter out the bottom surface you will get the inner room curves?

I still don’t know why the plane is not intersecting, because it should. Still the alternative that I am still using is to filter out the bottom surface. What does your graph look like now and is the intersecting still the main problem?

including half of the Wall?

No, the whole wall which seperates the rooms.

Thats why i want to create ONE solid from all the rooms. All the walls i need would be in that solid.
This is whis give my Curves an offset. My (Room) Solids will overlap so i can create ONE big Solid i
can use to create the new boundary.

Basicly this, but because the Room.FinishBoundary node doesn’t allways get all the boundaries (Curves) / seems not to allways work i tried it with Solids.

Edit
This is working for me again except for this still

Hmmz

I tried the offset and it worked fine for me, the only problem with this is that all the walls should have the same thickness.


CreateAreaFromRooms.dyn (92.0 KB)

If you don’t have the same wall thickness everywhere there is another solution

It works for me too as i said in my previous post, except for the two apartments on the top right.
Something weird is happening there (the diagonal).

NB
The grey areay is the Filled Region after i ran the script.

Does my script also give that weird diagonal?
Is the diagonal also visible in Dynamo?
Can you narrow down where the Diagonal first pops up?

Does my script also give that weird diagonal?

Not in Dynamo, but in Revit it does also give that weird diagonal.

Is the diagonal also visible in Dynamo?

I did not see it in my Graph.

Can you narrow down where the Diagonal first pops up?

What do you mean by this?

I sorry but the latest graph I send didn’t make the filled regions yet, how come that is shows the weird diagonal in Revit? Did you add the filled region after that?

What I meant with “Can you narrow down where the Diagonal first pops up?” is if you can check in Dynamo where the diagonal first comes into view, at which step in the process does that happen?

  1. You filter the Bottom surface
  2. Extract the Perimeter curves (so the curves of a verblijfsruimte & Remove the Curves which dont represent the boundary (Columns etc)
  3. Offset the curves
  4. Create solids
  5. Union them
  6. Intersect the solids with the XY plane (You get surfaces)
  7. Get the perimeter curves (so the curves of a verblijfsgebied)
  8. Create filled regions/Area’s

I currently have no idea what goes wrong and since I cannot examine the project files, I don’t think I can help you. :disappointed_relieved:

The diagonal IS visible in Dynamo.
I hardly saw it at first. It is barely visible, but it is there.

When i ‘unplug’ Solid.ByUnion in your Graph and run it i don’t get the diagonal.
As soon as i plug it back in to the Geometry.IntersectAll i get the diagonal.

Any idea where it is comming from?

Maybe this helps?