Place Revit families by CAD block location using Dynamo!

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

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

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

    Thank you for yor time and dedication in helping us navigating this world!

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

      You're welcome Jessica, happy to make the journey that bit more direct!

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

    Basically the source file (CAD) needs to be using a block...
    I see this helpful with Landscape drawings and placing trees in Revit workflow.

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

      Yes it has limited use case, but in principle relies on the blocks. Check out this great addin made by Bird tools since this video that does a similar thing:
      www.birdtools-developers.com/cbr.html

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

    Great content mate as usual. Keep it up!

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

    You’re the man, Gavin.

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

    Also, could you make a video on advanced selection in Dynamo?
    I'm talking about selection on multiple levels with filtering elements within a specific area/scope box area from revit.
    For cases when you have large buildings and you want to select a specific element on all floors on a particular part of the building instead of whole building or level.
    Thanks!

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

      Usually I'd use packages like Genius Loci for this - suggest checking them out. There should be quite a lot of advanced selections in there and they're typically exposed Python as well.

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

    Really helpful!
    Thanks Gavin

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

    Really grateful for the tip and for the concept how would be possible to do it. In practice in the native dwg file origin point of the block in auto Cad file practically never match with the Revit family because of the different approach in making of elements. Use example of the door, in the block origin can be at the edge or in the middle of the door which I was seeing usually in dwg files and by default origin inside Revit family is always in the middle of the door.

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

      Yes a workflow I have used in the past is to measure the origin deviations in AutoCAD first and then compensate for them in Dynamo using an Excel list. It's a shame there isn't consistency with how we all nominate our origins but I guess it is what it is!

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

      @@AussieBIMGuru yes. Actually first thing would be to check all blocks from dwg and then make a strategy what is easier thing to do. I repeated your script and really works smoothly. I even try to change the direction inside dwg in "clockwise" to see if Revit is gonna except rotating elements without adding -1 but didn't work.Thanks again..really cool script..

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

      I was working yesterday on extracting the data from DWG using "CAD Block" node and something strange occurred. The node wasn't listing all blocks. System of elimination was discovered that the reason was in the polar parameter that was inside the block. When I deleted a polar parameter inside block and reload again into Revit, everything was fine. I sent this issue to Genius Loci...Aussie, do you maybe know his name?

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

      Yes the package manager is called Alban de Chasteigner. Good idea to let him know, nice one!

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

    Interseting concept, i'm not python expert but is it possible to make the dynamo file read various properties block in cad is dynamic

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

      The linkdwg package can do this, but it's quite complex and buggy, hasn't worked well for a while. It's all using python.

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

    Hi Gavin, nice video. It's very helpful. One question - is there a way to read the block attributes and work with them? Like use them as a parametervalue

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

      Not easily - I'd look into the Genius Loci package and the Link DWG package for examples of how CAD properties can be interrogated using Python and Revit API/COM objects.

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

    Hello, I am tried to reinstall the Genius Loci package and Using the CAD Block first and select the model element for the linked cad, and I got fail to fix the coordination to the angle of the block.

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

      Hrm it might be worth troubleshooting via the forums if the package has issues. The package owner (Alban) can usually assist further with these types of issues.

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

    Great tips! Thanks so lot. I don't know if you said it, cause my English is not perfect. But, how can I download Cad Block?

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

      There isn't really any one place I know to download a CAD Block unfortunately, they're all over the Internet.

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

    Thanks for your knowledge Gavin!!! I'm a new student in that topic... I have been tried to used this workflow to place some windows and doors from cad file in revit using dynamo...but I don't feel sure if still using FamilyInstance.ByHostAndPoint... I will get a good result??? I've failed in all my attempts. What do you advice to me???

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

      Yes it's a bit more complex as you need to give the door/window a host as well as a placement point. I'd recommend keeping the wall lines as well as the walls they make in parallel, then get the closest point of each door/window block and find the nearest curve/point on that curve. Given you know the index of the curve, you can then get the corresponding wall it generates in the process. There are nodes in springs that can place hosted families by point/host/level/family type.

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

    if cad block orgin point is center,it does not work this dynamo code?right

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

      You would beed to manually compensate for the difference in the code.

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

    I was just watching your stream with Nic from Revit Pure, and you mentioned how your old Grasshopper tutorials are perhaps "outdated" given the release of Rhino 7, and therefore you might consider remaking them. Just curious, but are you going to follow up with that some time down the line? Or would it still be safe for someone to learn from your old tutorials for Rhino 7, at least most of the information is still useful that is.

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

      So my likely plan will be to build courses to capture updates as youtube content hasn't aged well and doesn't go together well in series format. TH-cam will be more for 1-off topics.
      I hope to release a rhino inside and grasshopper course sometime in 2022 and will release a course schedule on my platform once 2 courses are live (dynamo, revit families). Hopefully before end of year. For the most part my tutorials hold up OK, but rhino inside had a UI change and heaps of nodes changed names so that series lost some relevance.
      My platform is under development at courses.bimguru.education. Prices will be relatively affordable versus my competition, most likely $50/course/month and eventually a subscription option for all courses per month once i have enough on there to warrant it.

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

    Interesting video!
    Would this be harder to achieve with the Autocad/Revit API?

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

      Technically the custom node uses Revit API and be viewed if you're curious. It's quite a complex python script, not something I'd know how to do without Genius Loci.

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

    Thanks.Master but i have question.
    How to handle the offset? i follow your tutorial and i want to set this for placing air terminal family,but this dyn placed my family under nonsence offset.

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

      As CAD files are in 2D, offsets generally aren't feasible unless you provide a value to the families to be offset by when placed. Maybe consider building a table of values to offset your blocks by and use that to raise the elevation of your family placement points.

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

      @@AussieBIMGuru Thanks.I've learned a lot form your great contents.

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

    Is there a node that corresponds to FamilyInstance.Bypointandlevel for model groups?

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

      Not ootb i think. Genius loci and clockwork may have something. This is the API method to achieve the task:
      www.revitapidocs.com/2015/586d4f2e-0985-2d0b-dbb7-ea6d2f704336.htm

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

    Quick question please, when I tried to use Springs Node "FamilyInstance.ByHostAndPoint" it was OK!
    My question is why the new added families are not hosted to the predefined Host element?
    Is there an easy way to keep the relationship between the hosted families and the host element?

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

      Yes typically host and point is necessary for any family that needs to belong yo another element. Revit doesnt naturally know how to host things on placement in its API to my understanding, so the spring node adds that extra step to the process on placement using a dedicated API method instead of the default one given with dynamo.
      Typically once hosted the element should maintain the relationship to its host automatically.

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

      Thanks for your quick response.
      According to my test, the relationship is missing.
      I couldn't figure the reason, so I asked If I did anything wrong.

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

      @@ArchAhmadWaheed hrm generally it has worked in my testing for hosted elements. Make sure the host point is on the face of the relevant host. Beyond that I'd consult the forums for hands on tech help.

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

    Thanks for the great video!
    I've been in the weeds on this topic for the past few weeks. I think I have a solution for every step except I still haven't found a method of getting the CAD lines associated with the blocks. I see you built the dimensions directly into the group name and type names, but I don't think that method will be practical for our application. We'll have variable dimension in our CAD blocks. Any idea how to get the lines associated with each block?
    I've found other packages that let me grab every line on a layer, and that almost works, I just can't group those lines by block... Do you know any useful magic hear?

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

      There was a packaged called LinkDWG that used to be able to do this but is bugged in later versions. Maybe try out older versions and see if you have luck? It also contains Python code you could try to reuse but it's quite complex.

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

      @@AussieBIMGuru Yea I've looked into that without much success. I'll keep tinkering with it though.

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

    Always refreshing to see your content, super informative as usual. Admittedly, it partly inspired my own channel. (insert shameless plug for my latest video😅 )

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

      Always glad to provide inspiration :)
      No worries RE the plug, all for supporting other like minds - we're all in this together!

  • @ravichandra-up1nu
    @ravichandra-up1nu 2 ปีที่แล้ว

    Hi Gavin.. A small query on your package Crumple.. I have been trying to use the element.view node from your package but it's showing null in revit 2020 and previous versions too.. Can you please provide me a solution or nodes on how to get the view of the element.. Thank you

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

      In the case of that node it will try to return the element's ownerviewid property:
      www.revitapidocs.com/2022/174c1adf-0be8-a4b0-41f3-9e3ea1d6b1f1.htm
      It will return null if the element is not view specific (aka is in more than one view). The node works with elements like text, tags etc. which belong to a specific view though.

    • @ravichandra-up1nu
      @ravichandra-up1nu 2 ปีที่แล้ว

      Thanks for the reply.. In that case if the elements are pipe fittings etc.. How can I get the view of the element any suggesion please..

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

      @@ravichandra-up1nu you can't really, as they are in all views in the model that see them technically. They don't belong to any one particular view.
      The only method I came across is get_geometry to verify if the element can be seen by a view. There is discussion about it here:
      forums.autodesk.com/t5/revit-api-forum/determine-if-an-element-is-visible-in-a-view/td-p/4896040

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

    I can't find a way to automatically import a dwg file from a folder into revit using dynamo!! i'm getting crazy why i'm not able to read such file with a software like revit

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

      I believe Genius Loci has nodes to achieve this workflow.

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

      @@AussieBIMGuru I saw it and it gives me import instance, is there anything to help me manage the output?

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

      @@AussieBIMGuru thank you so much for the answer tho 🥰

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

    What if we have to place multiple blocks ?

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

      Then you would need to develop on top of this workflow with a more complex script.

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

      @@AussieBIMGuru i m stuck with 41 blocks i want to place.

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

    this will not work with hosted family

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

      Yes for that you will need to develop logic to find the nearest point to the nearest logical host - much harder, but possible. For cad toolkits it would make sense to first make all walls and then doors/windows etc come after so they can have a host assigned during placement by the toolkit also.

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

      @@AussieBIMGuru i believe that you have make video about that right? i could not find it in your channel anymore.

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

      @@sonnguyenxuan685 i have not unfortunately. Lots of threads on dynamo forums for it. I generally dont do much cad to bim these days.

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

    Dude, speak slower, please!

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

      50% video playback is probably the go here. Unfortunately I only have so much time to put into YT for free.