I’m using dynamo for over a week now and loving it! But…
I’ve places families by point coordinates (z,y, that I have extracted from dwg blocks). For the offset I want to use the ceiling-height at that coordinates. So is it possible to extract ceiling height at the point coordinates at a level? and if yes, could someone help me with the nodes please…
hi Greg, thank you for replying. the ceilings are in a linked model. And I would like to place the components level by level (gives me more control to dubbel check), unfortunately dynamo doesn´t like that. When I place the components level by level, it deletes (undoes) the previous placed components. So I guess placing them at al the levels would be great.
Hi LazyBIM,
I think thats EXACTLY what want. Let me try it out…wil keep you updated… btw… tnx for replying
Sure thing. Let me know how it goes. Also, if your building doesn’t have a crazy number of floors, you can still consider placing components floor by floor - just close the script and open it again after each run.
You need to select the linked file that contains the ceilings with 'GetItemAtIndex" (or a code block) and then feed that into the “GetCategoryFromLinkedFile” node.
Maybe it’s easier if I tell you the reason why I want to do this. I have 150 linked models, 100 of these contain ceilings. I need to place more than 1000 components on each level. I could do this the traditional way, where I place them on the planview and adjust the height through the section. But as you can imagine my model is very big and very very slow… so I thought maybe dynamo would make some changes in my workflow …right now it still not working, maybe because of to many ceiling geometry…
I though dynamo recognizes my curve and pick the geometry where it intersects with. But I think it doesn’t work that way. Do you have any suggestion where I can make progress with the issue that I have?
I think you must intersect each line with each ceiling…
I do not know if there is a “light” way (maybe with list.map?) but here is my take on it (even if I had to deal with existing components, while you will have to place them with some node like FamilyInstance.ByCoordinates) :
(Excuse me but some parts are not in english, famiglia=family, livello=level)
Greg is right in that your computer will probably expode with that many links and objects…
Another approach you could take is by using the ‘RayBounce’ node. It’s a lot faster than creating all that ceiling geometry in Dynamo. Downside is that it doesn’t recognize the elements through the links, it just reports a clash with the linked instance.
Here’s a workflow that shows what the node does: https://sites.google.com/site/bimstallatie/dynamo/set-ceiling-height-to-room-parameter
You might be able to create something with that.
I tried to recreate the workflow with the nodes, instead of rooms I have selected my components. Unfortunately all my lists are empty. Is it because of the linked models?
Oh sorry, I was confused, I thought it would bounce off linked instances as well. I’ve got a python node somewhere that does about the same but also returns bounces with linked instances. I need to look it up, will get back to you
You can try this node, the only downside is that you can only use it on a single linked file at a time, so I don’t know if it’s any use to you.RayBounce with Python.dyn (7.9 KB)
It returns 2 lists: the first with the objects it encounters (nothing or the linked instance) and the second list returns the distance from the given location to the object from the first list.
once you get the ceilings from the linked file, join their geometry into a unique solid, then project your points on it. It should run faster . I hope this helps