Elements in Linked Rooms using Dynamo!

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ต.ค. 2024

ความคิดเห็น • 83

  • @miguelpacheco1981
    @miguelpacheco1981 8 หลายเดือนก่อน +2

    Thank you! you just saved my day

    • @AussieBIMGuru
      @AussieBIMGuru  8 หลายเดือนก่อน

      That's what I like to hear!

  • @victors.7717
    @victors.7717 3 ปีที่แล้ว

    Thank Gavin! Very helpful as always. Every time I have a problem to solve it seems you already covered it with a tutorial in your channel! You are the best!

    • @AussieBIMGuru
      @AussieBIMGuru  3 ปีที่แล้ว +1

      You're welcome mate! More workflows to come in future, but I've tried to cover the most common ones people come across in daily practice. Happy new year to yourself and AC.

  • @immi85
    @immi85 4 ปีที่แล้ว +1

    Very handy workflow.
    So much hard work.👍

  • @shujath9176
    @shujath9176 2 ปีที่แล้ว +1

    Hi Gavin, I am facing issue in catching outlets which are recessed on wall. Those elements are lying on the verge of room boundaries and missing the "does-intersect" node. Interestingly, if I create a space and run FamilyInstance.Space node, it is detecting those elements and working fine. Any idea how to catch those recessed elements.

    • @AussieBIMGuru
      @AussieBIMGuru  2 ปีที่แล้ว +1

      This is likely due to the location versus the room calculation point. For these types of elements you would need to move the location forward by a nominal amount to ensure it is in the spaces geometry.

  • @drewhopkins3342
    @drewhopkins3342 2 ปีที่แล้ว +1

    Great video it is a great workflow. I am a lighting designer so all of my fixtures fall just above a room. I tried to use a geometry translate to drop the z cord inside of the room but was still pulling only "false". I was wondering if you had any ideas that may fix that issue of pulling only "false" results from the clash detection.

    • @AussieBIMGuru
      @AussieBIMGuru  2 ปีที่แล้ว

      Hrm that's odd, usually a point would work assuming it is inside the room geometry. Maybe try creating a line instead and see if that works?

  • @AHMADITTC
    @AHMADITTC 2 หลายเดือนก่อน

    Hi Gavin,
    Thank you for the channel-it was really helpful and has made a positive impact on my career!
    I have a question regarding a problem I'm facing. When I retrieve rooms from the linked model in Dynamo and try to convert them to geometry, I notice that the location of the elements in the linked model is shifted from their actual position in Revit. Do you have any idea what might be causing this issue?

    • @AussieBIMGuru
      @AussieBIMGuru  2 หลายเดือนก่อน

      Glad the channel helped! Yes this will be due to the link transforms, use this trick to account for it:
      th-cam.com/video/6Di0kUX8mP8/w-d-xo.html

  • @jeremysmyth7471
    @jeremysmyth7471 2 ปีที่แล้ว +1

    Do you think this could be adapted to suit the following? I have rooms in my host model and the furniture elements are in the linked model and I need to schedule the furniture by room location.

    • @AussieBIMGuru
      @AussieBIMGuru  2 ปีที่แล้ว +2

      Yes but you would always need to add the data to be scheduled in the model containing the native element - Dynamo cannot push data into linked elements (nor can Revit or its API). You can schedule linked object data if you include them in the filtering settings tab of the schedule.

  • @aalexg13
    @aalexg13 4 หลายเดือนก่อน +1

    Hey Gavin! The linked models falls correct on 3D view, but the coordinates pulled from geometry.BoundingBox differ from model to model.. I am thinking that i need to use something with "Traslate" or "transform". Any ideas?

    • @AussieBIMGuru
      @AussieBIMGuru  4 หลายเดือนก่อน +1

      Yep this video shows how to apply link transforms:
      th-cam.com/video/6Di0kUX8mP8/w-d-xo.html

    • @aalexg13
      @aalexg13 4 หลายเดือนก่อน

      @@AussieBIMGuru Thank you Gavin! Another question 😇 How do you get rid the elements that have index -1 (the elements that are not in a room apparently)

    • @AussieBIMGuru
      @AussieBIMGuru  4 หลายเดือนก่อน +1

      @aalexg13 an equals node and a filter by boolean mask checking for -1 equality is the easiest, although there are more tricky options such as getting the room numbers then adding the item 'N/A' or an empty string to the end of the list, then indexing using code block syntax (list[index]). In a code block -1 will return the last item in a list unlike the itematindex node.

  • @McFletch132
    @McFletch132 4 ปีที่แล้ว +1

    Great video! I only had one question. im trying to use at method similar to yours to find the location of dampeners in a ventilation model and check if the the electrical components are in the same place, or i will move them to the right location. I also need to check if there are any new dampeners or if some have been deleted. the way i do this is to copy the BATID from the ventilation model and copy it to a parameter i have made. I used the list.conains node with cross product to check if the BATID from the vent.model is in the electrical model an reverse. When problem is when there is a new dampener in the vent.model i get a -1 it the list.contains. my question is how do i do the "catch all" filtering you where talking about?

    • @AussieBIMGuru
      @AussieBIMGuru  4 ปีที่แล้ว

      Thanks!
      The catch all I refer to here is mostly in relation to elements slightly outside the room, such as wall recessed elements. These can be difficult to collect using a workflow like this given they aren't in the space itself.
      Usually in these cases I would build an excel file with distances for each problematic fixture type, then project their origin point slightly forward so it falls in the room it points towards.
      In your case I like your workflow, using a matching Id is the right approach. If new fixtures are failing to find a match I would filter these out separately before updating the ones with a match. You could then generate a report in excel with the Id's of any unmatched elements from the ones that got filtered out, so they can be manually reviewed.

  • @daveotis7016
    @daveotis7016 4 ปีที่แล้ว +1

    Hi @Aussie BIM Guru, thanks for this awesome video! I try this script but dynamo associate the wrong rooms for mu electrical equipment, any idea? Thanks!

    • @AussieBIMGuru
      @AussieBIMGuru  4 ปีที่แล้ว +2

      Probably look at the results in detail - it could be a list management issue. Double check where the matches are being found in the lists, this might hint as to why its happening.

  • @bharaths7671
    @bharaths7671 23 วันที่ผ่านมา +1

    Thankyou so much Sir🎉❤

  • @mehark
    @mehark 3 ปีที่แล้ว +1

    Hello, i would like to know why not use simply the Space commande in the analyse tab? It does the work pretty well

    • @AussieBIMGuru
      @AussieBIMGuru  3 ปีที่แล้ว

      If you use spaces, sure. Most architects use rooms and/or areas.

  • @muratusta8138
    @muratusta8138 4 ปีที่แล้ว +1

    Thanks this excellent video, Gavin, I will ask a question how can I be able to find smart, interactive or practice way to place my different furtinures to different rooms as script ?

    • @muratusta8138
      @muratusta8138 4 ปีที่แล้ว

      *furnitures

    • @AussieBIMGuru
      @AussieBIMGuru  4 ปีที่แล้ว +1

      You would need to write algorithms to detect the room boundaries and area and work your way inward from the edge or outward from points within the room as a surface probably.
      It really depends on the type of furniture you're placing or the room type. For example a meeting room you would probably find room centre and the short side of the room, then place the table/chair as a family (nested chairs/table) at the centre, rotated for the short end of the table to face ths shorter side.

  • @tommetjuuh
    @tommetjuuh 3 ปีที่แล้ว +1

    Hi Gavin, Awesome vid. what would, considering the described workflow, be the best function/node to clear -1 results in the list.map node?

    • @AussieBIMGuru
      @AussieBIMGuru  3 ปีที่แล้ว

      The best way to manage these out (essentially an item with no intersecting room) would be to first check 'any true' @L2, then filter out the results, geometry and rooms using a boolean mask each so that the only results remaining will have at least one intersecting result (aka a true). -1 indices essentially mean no match was found.

    • @newshunhk
      @newshunhk 3 ปีที่แล้ว

      @@AussieBIMGuru is it possible to post a screen for this? I really struggle to filter out those -1...

    • @AussieBIMGuru
      @AussieBIMGuru  3 ปีที่แล้ว +1

      Try this method I posted here today but instrad of the isnull node use a != node for checking against -1. Filter the indices by that boolean list and only the non -1 results will be in the in output of the boolean mask node.
      forum.dynamobim.com/t/filter-two-lists-of-values-not-equal-to-null/69328

    • @newshunhk
      @newshunhk 3 ปีที่แล้ว

      @@AussieBIMGuru that link is useful and save my day, it uses two boolean filter but share the same mask, thank you!

  • @christianmusto7893
    @christianmusto7893 3 ปีที่แล้ว +1

    Hi BIM dragon ;), i have a question for u, if i want estract pipe inside ceilings and the pipes runs outside ceilings how can i do?

    • @AussieBIMGuru
      @AussieBIMGuru  3 ปีที่แล้ว +1

      BIM dragon, that's a new one haha - I like it!
      Hrm this is quite tricky, you could always get the room boundaries instead and patch them to surfaces. You could then take all pipes between that level and the next, take their bounding box and its cuboid, then its centroid - this would represent the absolute centre of the pipe segment. You could then pull this point down to the level and see which room surface it clashes with or is closest to. Pretty tricky, but probably the most efficient method I can think of that ignores room height.

  • @EngFabricioRF
    @EngFabricioRF ปีที่แล้ว

    Thanks again! Would you recommend any aproach to deal with elements a little bit outside the rooms? Like on walls or below the floor?

    • @AussieBIMGuru
      @AussieBIMGuru  ปีที่แล้ว +1

      Generally for these you could get the room boundary and scale it up slightly from centre or offset it as a curve then extrude as solid and use that instead.

    • @EngFabricioRF
      @EngFabricioRF ปีที่แล้ว

      @@AussieBIMGuru I'll do that. Thank you very much! 👏👏👏

  • @namogojean-marckone2450
    @namogojean-marckone2450 ปีที่แล้ว

    Hello, thank you for your video !
    I've tried to do this with a MEP model and an architect's model linked containing the rooms, but it doesn't work. I would like to locate the networks and equipment in each room. But I have the impression that my room volumes are not in the same place as my networks, even though the models are compiled correctly. I also keep getting an error with "element.geometry". How can I resolve this?
    Thanks a lot!

    • @AussieBIMGuru
      @AussieBIMGuru  ปีที่แล้ว +1

      Try to get the geometry in Dynamo to see if it is actually intersecting. You may need to apply a coordinate system change using the link transform if they are not using the same internal coordinate positions.

    • @namogojean-marckone2450
      @namogojean-marckone2450 ปีที่แล้ว

      @@AussieBIMGuru Indeed, I think it's an internal problem. The geometry created by dynamo for the rooms is far from the geometry of the objects, so there's no intersection. It finds the same part name value for all objects. How can I allow them to have the same internal origin?

  • @nebojsajeremic3797
    @nebojsajeremic3797 8 หลายเดือนก่อน

    Dear Gavin, script is great, I need it for some model in revit 2019, I tried but I got error in BoundingBox.Properties, centroid is null, dynamo is 1.3.4 ... node is newer. Is there some other solution ? BR

    • @AussieBIMGuru
      @AussieBIMGuru  8 หลายเดือนก่อน

      Dynamo 1.3.4 is ancient now! They don't support it anymore as far as I know...
      Clockwork 2.x.0 only works in Dynamo builds for 2.X and above I think.

    • @nebojsajeremic3797
      @nebojsajeremic3797 8 หลายเดือนก่อน +1

      @@AussieBIMGuru Yes ... 😞, thank you for replay.

  • @newshunhk
    @newshunhk 3 ปีที่แล้ว +1

    I got too many rooms in my project e.g. 800... the element.geometry crashes all the time :( do u have any idea on handling this?

    • @AussieBIMGuru
      @AussieBIMGuru  3 ปีที่แล้ว

      Try reducing the rooms and elements you are collecting to a level at a time maybe.

  • @davidtichy6201
    @davidtichy6201 2 ปีที่แล้ว +1

    Perfect It solved my problem.

  • @mncrider24
    @mncrider24 3 ปีที่แล้ว

    Great video, thank you. I'm trying to download this script from your sight, but I can't find/decide which one it is! Could you point me in the right direction? Thank you.

    • @AussieBIMGuru
      @AussieBIMGuru  3 ปีที่แล้ว

      github.com/aussieBIMguru/Dynamo_Scripts/blob/master/ABG_200319_ElementsInRoom.dyn

  • @Turamiar
    @Turamiar 4 ปีที่แล้ว

    Epic work again Gavin. I'm trying to work this graph on copy/monitored mech. elements. The things is when a monitored element moves without our notice (when sync the link), the graph does not match the locations between elements so I cannot get the parameter from the linked model. Do you know how we can solve this problem? How we can update the location of copied element without manually align them.

    • @AussieBIMGuru
      @AussieBIMGuru  4 ปีที่แล้ว +1

      Thanks!
      I'm not 100% sure on how to get a copied element to identify its monitored counterpart but that would be the key. If this was possible, you could simply use 'element.getlocation' on the monitored linked element and apply an 'element.setlocation' to the copied element.
      From what I can see, copy/monitor is not exposed in the API unfortunately, so the only way I could think to do this would be to manually add the monitored element's ID for comparison. Not a great workflow though I know...!
      If the copy/monitor list was exportable as a report with ID's this would help, although I don't seem to recall this being available.

    • @Turamiar
      @Turamiar 4 ปีที่แล้ว

      @@AussieBIMGuru"From what I can see, copy/monitor is not exposed in the API unfortunately". Yes, I hope this will be added in the future. It can really help especially when you are working with too many discipline links. Thank you man.

  • @peuma_AI
    @peuma_AI 3 ปีที่แล้ว +1

    thank you so much!

  • @BIMSurgeon
    @BIMSurgeon 2 ปีที่แล้ว

    Gavin, any suggestions for families that span multiple floors, like elevators or escalators?

    • @AussieBIMGuru
      @AussieBIMGuru  2 ปีที่แล้ว +1

      I'd usually say these belong to the lowest room. Their origin as a family would likely be at their base so should be able to be assigned the number in the same way as this workflow if you take the origin of the family, or the bottom centrepoint of their bounding box (uvw = .5,.5,0)

    • @BIMSurgeon
      @BIMSurgeon 2 ปีที่แล้ว +1

      @@AussieBIMGuru I actually removed the centroid node, and just intersected the families' bounding boxes with the rooms and that did the trick! Thanks!!

  • @srinivaasthota6459
    @srinivaasthota6459 หลายเดือนก่อน

    Hey Gavin, Thank you for the tutorial. This is exactly what I want. But when I replicate the same at my end I got an error while getting element parameter value by name (at 8.30 minutes of the tutorial). It says " Warning: LinkElement.GetParameterValueByName operation failed. Method not found: 'Autodesk.Revit.DB.UnitType Autodesk.Revit.DB.Definition.get_UnitType()'. ". Could you please guide on how to overcome this. Thank you.

    • @AussieBIMGuru
      @AussieBIMGuru  12 วันที่ผ่านมา

      Hrm it sounds like a bug in Dynamo where they forgot to update a node in an old version maybe, might be best to check in with the forums on this one.

  • @carcheebboys
    @carcheebboys 7 หลายเดือนก่อน

    This is awesome, I am getting an error on the "Element.Geometry" node which says "Warning: One or more geometries have failed to convert due to this error: Unable to make wire from edge body : WIRE_SELF_INTERSECTS2 -- Wire has self-intersection." It also puts the wrong data into the furniture and I'm thinking it's because of the error. Any ideas? I've searched the world wide webs and can't find anything. Thank you!

    • @carcheebboys
      @carcheebboys 7 หลายเดือนก่อน

      Or is there an easy way to find the self interesting room?

    • @AussieBIMGuru
      @AussieBIMGuru  7 หลายเดือนก่อน

      Unfortunately this is common for complex or messy room boundaries, particularly if they have gaps between walls that have to be crossed by the boundary ever so slightly. I haven't found a good workaround to these generally. Sometimes you can work around this by asking for their finish boundary and then extruding that.
      You could also filter out these rooms, and then isolate all elements without a room found after for manual review. Hopefully it would generally only be 1 or 2.

  • @edwardalfaro4905
    @edwardalfaro4905 11 หลายเดือนก่อน

    Hello, if i move the element to another room, it will automatically change that information?

    • @AussieBIMGuru
      @AussieBIMGuru  11 หลายเดือนก่อน

      No, the script must be run again.

  • @varvara.g
    @varvara.g 3 หลายเดือนก่อน

    Followed you steps, but got a "null" in the node List.Map. What might be wrong?

    • @AussieBIMGuru
      @AussieBIMGuru  2 หลายเดือนก่อน

      It could be a variety of reasons. Maybe the link is transformed (moved)? If so check out my later videos where i show how to allow for this.

  • @vivt7123
    @vivt7123 4 ปีที่แล้ว +1

    Hi, my element geometry have some empty list inside.

    • @AussieBIMGuru
      @AussieBIMGuru  4 ปีที่แล้ว

      What are the elements? You can filter them out with a boolean mask/isempty check.

  • @a_hoeks
    @a_hoeks 8 หลายเดือนก่อน

    My centroids are all null.. Any ideas why???

    • @AussieBIMGuru
      @AussieBIMGuru  8 หลายเดือนก่อน

      Hrm not sure, try doing Element bounding box > Cuboid > Centroid instead.

    • @a_hoeks
      @a_hoeks 8 หลายเดือนก่อน

      Not finding a Cuboid to Centroid. I'll keep digging@@AussieBIMGuru

  • @samsample7886
    @samsample7886 ปีที่แล้ว

    thanks cheif

  • @N1Alf
    @N1Alf ปีที่แล้ว

    Hello, thanks for the great contribution. The LinkElement.OfCategory Node appears a warning that says: Method not found INT64
    Do you know how it can be solved?

    • @AussieBIMGuru
      @AussieBIMGuru  ปีที่แล้ว

      Sounds like an issue related to the 64 bit integer change and elemend Ids which comes in later builds. Ensure you use the latest package version, and if it still doesn't work maybe contact the package author.