Elements in Linked Rooms using Dynamo!

Поделиться
HTML-код
  • Опубликовано: 12 дек 2024

Комментарии • 83

  • @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.

  • @miguelpacheco1981
    @miguelpacheco1981 9 месяцев назад +2

    Thank you! you just saved my day

  • @immi85
    @immi85 4 года назад +1

    Very handy workflow.
    So much hard work.👍

  • @bharaths7671
    @bharaths7671 2 месяца назад +1

    Thankyou so much Sir🎉❤

  • @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.

  • @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?

  • @davidtichy6201
    @davidtichy6201 2 года назад +1

    Perfect It solved my problem.

  • @peuma_AI
    @peuma_AI 3 года назад +1

    thank you so much!

  • @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.

  • @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!

  • @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.

  • @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.

  • @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.

  • @aalexg13
    @aalexg13 6 месяцев назад +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  6 месяцев назад +1

      Yep this video shows how to apply link transforms:
      ruclips.net/video/6Di0kUX8mP8/видео.html

    • @aalexg13
      @aalexg13 6 месяцев назад

      @@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  6 месяцев назад +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.

  • @AHMADITTC
    @AHMADITTC 3 месяца назад

    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  3 месяца назад

      Glad the channel helped! Yes this will be due to the link transforms, use this trick to account for it:
      ruclips.net/video/6Di0kUX8mP8/видео.html

  • @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.

  • @Fabricio1979
    @Fabricio1979 Год назад

    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.

    • @Fabricio1979
      @Fabricio1979 Год назад

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

  • @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 года назад +1

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

  • @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 9 месяцев назад

    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  9 месяцев назад

      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 9 месяцев назад +1

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

  • @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!!

  • @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

  • @srinivaasthota6459
    @srinivaasthota6459 2 месяца назад

    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  Месяц назад

      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.

  • @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.

  • @carcheebboys
    @carcheebboys 9 месяцев назад

    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 9 месяцев назад

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

    • @AussieBIMGuru
      @AussieBIMGuru  9 месяцев назад

      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.

  • @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.

  • @edwardalfaro4905
    @edwardalfaro4905 Год назад

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

  • @varvara.g
    @varvara.g 4 месяца назад

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

    • @AussieBIMGuru
      @AussieBIMGuru  4 месяца назад

      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.

  • @a_hoeks
    @a_hoeks 10 месяцев назад

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

    • @AussieBIMGuru
      @AussieBIMGuru  10 месяцев назад

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

    • @a_hoeks
      @a_hoeks 10 месяцев назад

      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.