Is element.arealocation gone?

Hi everyone,
I’m trying to look for “element.arealocation” in Rhythm collection, ma seems like has been deleted. Any clue?

If not, can you please tell me if there’s a tool to read where an object has been placed (in which area, not room).

Thanks for your help, I tried to look on the internet and find no solutions

Carmine

There’s always the Python solution. But if you are not familiar with Python you can download an older version of a package from dynamopackages.com

What do you mean with “Python” solution? To assess a similar definition in Python or to copy the same code in a Python script? If the former, I’m not so familiar with Python to write a code

and I checked on the dynamo website… the full package seems like not containing the definition, and I don’t remember which version had it.
Question: Can I use an older version with the latest release of Dynamo?

There’s no guarantee they will work. But some of them might.
I’m not quite familiar with this node and what it used to do. But here’s my help: If I were you I would download some old versions of Rhythm and check to see if I can find the missing node. When I find it I’d open it and look for the logic inside it. There’s a chance there’s no Python used so you can then easily replicate what the node used to do yourself.

For instance if it was giving you the area in which an element exists. You can probably get the geometry of area elements, get the geometry of the elements in question and check to see if they intersect with area geometry. If yes it means that element is inside that area.

Below will give you the boundary of areas from which you can start your checking process.

import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
from Revit.Elements import * 

input = UnwrapElement(IN[0])

output = [] 

for i in input:
	temp1 = i.GetBoundarySegments(SpatialElementBoundaryOptions())
	temp2 = []
	for list in temp1:
		for segment in list:
			temp2.append(segment.GetCurve().ToProtoType())
	output.append(temp2)

OUT = output

Hoss

I retired it a while back as it was super unstable. Actually not even sure which version of the package had it last.

Does @HossZamani’s solution match what you need?

I’m actually creating a solution with the Dynamo logic… see what’s like and then I’ll get a try to HozzZam’s solution. I’ll let you know… Thanks everybody for the help!

1 Like

I managed to create a definition, seems like it works, but I think it could be improved… can you guys take a look at? For example, is there a way of assigning the “name” values based on the results of the intersect node, without create a labyrinth of definitions as I did?

Here’s the definitionelements schedule in areas.dyn (28.5 KB)

Actually I discovered another problem with this definition… It actually recognizes ONLY the element that has been placed in a particular LEVEL, if for example the element is been placed in a level that is slightly below, it won’t be counted… Is there a way to make the element “bounding” aware (within a certain buffer)…? If not I fear my users will have problem using this definition…

And now you are seeing why I retired this node. :see_no_evil:

What would be really awesome is if Autodesk included some of the similar methods for Revit rooms in the Area class.

Rooms offer us:

Not promising anything - but I might be able to look at doing similar things with areas in custom nodes.

For now, I would suggest you look at bounding box intersections which would allow you to have a “buffer” as you mentioned.

1 Like

John, I suspected that :slight_smile: dealing with areas is always complicated, from revit users to dynamo developer… but I really can’t believe it’s so complicated to have an object schedule in revit sorted by areas, without getting mental and not overcomplicate the parameters inside… -.-’’

I am “forced” to create this definitions because sometimes in my firm you either use areas or rooms depending on the stage… I know the Autodesk will reply that “rooms are the most logical container for objects”, but I don’t want to make an obliged path choosing only rooms… :frowning: i don’t know I was clear enough…

1 Like