(Room) Element.Geometry or solid returns NULL

Is there some one can figure out what is the issue what return the room geometry null as per the snapshot below.

Do all rooms return null or only some? Set the Element.Geometry node to longest lacing and @L1 to see how complex the error is.

Once that is done provide a snapshot of the first room in the model so we can see what the issue is.

My first thought is perhaps filter should be Area > 0 and use the included set as that would catch up laced and unbound rooms but == 0 might only catch unbound rooms.

its about 3 rooms return null of 29 rooms

Hi @eng.ahmedelshamy.bim,

Download link

i attached the test Model and the script i am using right now hope it helps.

Is there any updates???

They are likely unplaced or unbound rooms that don’t have geometry. Get the Room Areas and see if the same rooms have no area.


I did filter for all rooms by filter node by Area to be sure that i have only geometry with Valid area. have a look for the file i shared above (wetransfer link).

It could also be from Rooms with “holes” in the middle. I believe the same thing can happen when a room has boundary lines within boundary lines.

For example: If you have a large open office space with a conference room in the middle, the open office space may need to be broken up into two separate rooms. Otherwise Dynamo could have trouble with the singular donut-shaped room.

1 Like

i tried different geometry of rooms, with void in the middle and with different shape and the script is readying but this is in a new model, but in the shared file here its giving error even i exclude all rooms was deleted or with area equal Zero by == node and the same issue same result.

You have a bunch of walls that overlap or don’t connect that are causing issues with the geometry analysis. Clean up the walls and Dynamo will have no problem creating the geometry.

can you show me if its possible?

One thing right off the bat: you have a room with a large opening in the middle of it. This will usually fail in some way. The other room I can’t yet find the reason for the failure but my gut says it’ll be something similar. What are you really after in the end?

the plan is the create geometry of the room in solid and then collect all element inside the room and give them parameter name based on the zone value, i tried with bounding box but the problem with bounding box its not accurate as it always reads only four sides depend on the shape orientation which cause overlap in reading the zone value for elements.

Why not find the point the objects are at, and use a RoomAtPoint method?

can you show me how the script will be

  1. Element.GetLocation
  2. If location is a line, Curve.PointAtParameter 0…1…#5
  3. Archilab node Select.RoomAtPoint to get the room each point is in.
  4. List.Unique to remove duplicate rooms from each sublist.

You now have a listing of all rooms which each item is located in.

i will check but i hope if it possible u send me snapshot of the script from dynamo to not missed anything and on more question what about system family like duct or pipe how it can translated.

Duct and pipe will work by turning the line into a series of points as per step #2.

I won’t have time to build a data set and an associated graph this week - if you post more I’ll likely be able to help more.

Sure i will i am just trying to do the script in dynamo if u have time can attach snap from dynamo with the script you mentioned here it will be great