Hi Gavin, such a great tutorial, useful as ever! I just want to share my personal experience on the LinkDWG issue on later releases which does not show ImportInstances.GetCOMObjectsByObjectDBX. Actually in the release I'm using is gone too, but I managed to set a little tweak to get it back. I'm sharing this to give continuity to your tutorial and to help others to get it to work. You can test yourself the solution and share the solution on LinkedIn too if you wish to. As others might have noticed there's a node called ImportInstances.GetCOMAnnotationsByObjectDBX. By diving into the definition of such custom node I did find many of the outputs were available but disabled. Then I copy/pasted the whole custom node content and created a new custom node getting back all the outputs and that did the trick. Some more notes from my experience: * Autocad application must be open in order to get the Object DBX to work * dwg file shall be closed since the Python script underneath opens such file to get all the info * in the Revit project I created a selection set from the selected model element (I used the SelectionSet.ByElements node from Clockwork) - it could be optional but in my case it worked better Revit version: 2021 Dynamo version: * Core 2.5.0.7460 * Revit 2.5.0.7586 Packages used: * Clockwork v.2.3.0 (SelectionSet.ByElements) * LinkDWG v.0.3.91 (GetCOMObjects, BlockProperties) * spring nodes v.204.1.0 (SelectInRevit) * my own package (for the custom node changed from LinkDWG.GetCOMAnnotationsByObjectDBX as described above)
@@AussieBIMGuru yes, actually sounds weird. Maybe they created the new node only for annotations and they "forgot" to leave the original one as it was. Maybe I'll ask in the dynamo forum to see if I can reach them.
For everyone's reference, the fixed node by Paolo has been added to the zip on github; github.com/aussieBIMguru/Dynamo_Scripts/blob/master/ABG_200220_CADBlocks.zip
@@AussieBIMGuru Thanks! At the end I decided to use a workaround: use extract data command at autocad. it's been working pretty well actually :) It is a nice option for those who had the same problem
This is useful. I have a question maybe its irrelevant to the subject... can you explain the mechanism you'r using with google remote ? Any server? .... ThankX
Hi, Your contents are soo helpful thanksdoc. I'm wondering , I have 200 tree blocks placed in AUTOCAD and now i want to replace all those 2D CAD blocks in revit with a 3D revit tree, Do you know a method to do this? It would be great if you could give a advise
Yes this workflow could likely do it as long as you have equivalent families for your autocad blocks. You could use index of/get item at index to check the equivalent family per block to place, using something like an excel file with the two columns being the CAD/Revit equivalents.
What if the tree blocks names from CAD were different & not matching those of the Revit Family names? Is there any package which renames those blocks on Dynamo & then make them match with Revit families?
I would create an excel file with two columns to match the CAD vs Revit names. Unfortunately Dynamo would have no way of knowing that the two relate without some sort of match-able criteria or convention.
The script is very useful Gavin...!! I have a question.. I exported the revit sample file to dwg and tried to insert air terminals back into the revit and they are placed successfully. I rotated the family instances by taking the rotation degree values from cad but they are not rotated to the same position There is a dicrepancy in that which i could not figure out. Please help me on that
It probably depends on the origin of the rotation point, and also the rotation of the duct vs the Dynamo world axis'. It's fairly complex to cover in simple terms - would require you to analyze the block rotation from the DWG versus the default family rotation value, then set the family rotation to this difference.
Hi Gavin, as per usual I love your content, and this was very helpful so thanks! I have a question regarding the insertion point. Once you have that in place and the 3D family is placed using the correct (center point in my example) How do you use rotation for that same object. I have a nested family in my family and when using FamilyInstance.SetRotation the default rotation point is not in the center but slightly off. Do you have any knowledge to how you can reallocate or overwrite the rotation point in Dynamo or a script that does this for you? Hopefully this makes sense. Thanks
If after the rotation you compare the placement point to the families new position using Element.SetLocation. If this reverts the rotation, then you may need to manually calculate the difference as a movement prior to rotation instead to compensate for this motion. No node I know of can rotate an element by any method other than its placement point.
The unit convert utils class can manage this in revit API or if in dynamo you can use the convert unit node. Generally I only recommend building scripts for metric or imperial versus both.
Hi Sir. I dont know how to create custom script in dynamo. I just use purely revit. im working right now with placing hundreds of trees in my task. ive just tried to follow your process step by step, but to no avail, some nodes you mentioned is not available even though i already installed all required packages. Can you update this tutorial sir? or help me with this? Thank you
I may revisit this in future, but the node I would use is the CAD block node from Genius Loci package. Unfortunately the LinkDWG package doesn't work anymore. You can also use the dataextract command in AutoCAD to export block positions and names to excel but that is a more complex workflow
Excuse me, I would like to ask you a question. If my imported cad drawing moves, and then I use the linkdwg node, the coordinates of the points will move. How can I modify the coordinate system to make the points in the right place
@@tingyunmao8861 use a common reference or annotated coordinate in the CAD file (or the Id command in AutoCAD to identify a coordinate). You can then measure and adjust the discrepancy between revit and CAD coordinates in Dynamo.
@@AussieBIMGuru I'm just going to make a family and I'm going to put it at the two origin points, and then I'm going to use dynamo to figure out the coordinates, right
@@askrinassim7290 yes i did some reading and it seems that it cannot be changed independently; forums.autodesk.com/t5/revit-mep-forum/view-problem-colors-axis-ducts/td-p/6420828
It would be a similar workflow, you would need to find the block origin and how it relates to each door/window family. Then you could find the point that it sits at in host walls. I probably wont get back to the LinkDWG package for a while as I don't use DWG references very often in my consulting work, but maybe try and see how you go with experimenting with it!
I'm using the same work flow for doors/windows family some areas window are created but some areas windows are deleted automatically in dynamo. please help me on that
@@fayazmohammad7688 they must be failing to place or host. Maybe try using springnodes for the hostedinstance.bypoints node if not already. It could also be the family and the height its placed at, if it has no wall or only part of a wall sometimes it fails to host.
@@AussieBIMGuru Thanks for the reply I'm using springnodes only,but windows are deleted at some areas. Is their any alternate method for placing the doors and windows ,I'm getting the exact points from cad plan ,But windows are deleted at that points in dynamo.Please Guide me on that It was very helpful for me
Contact the package manager or try the package version dated around the upload date of this video. I'm nearly 100% sure there is nodes in genius loci to do this currently. Look in the package, dont just search.
Yes but programming culture is quite toxic from what my mates in there tell me. Serious mental burnout and competition. I also like the field of architecture and the nature of problems I solve within it. Debugging wpf doesn't excite me as much! I actually make at least double what most architects do around me just by consulting and selling my content so life aint too bad! Great question though, and appreciate people asking it. AEC salaries on average aren't great, need to negotiate and sell your skills hard to break the mould.
Hi Gavin, such a great tutorial, useful as ever!
I just want to share my personal experience on the LinkDWG issue on later releases which does not show ImportInstances.GetCOMObjectsByObjectDBX.
Actually in the release I'm using is gone too, but I managed to set a little tweak to get it back.
I'm sharing this to give continuity to your tutorial and to help others to get it to work.
You can test yourself the solution and share the solution on LinkedIn too if you wish to.
As others might have noticed there's a node called ImportInstances.GetCOMAnnotationsByObjectDBX.
By diving into the definition of such custom node I did find many of the outputs were available but disabled.
Then I copy/pasted the whole custom node content and created a new custom node getting back all the outputs and that did the trick.
Some more notes from my experience:
* Autocad application must be open in order to get the Object DBX to work
* dwg file shall be closed since the Python script underneath opens such file to get all the info
* in the Revit project I created a selection set from the selected model element (I used the SelectionSet.ByElements node from Clockwork) - it could be optional but in my case it worked better
Revit version: 2021
Dynamo version:
* Core 2.5.0.7460
* Revit 2.5.0.7586
Packages used:
* Clockwork v.2.3.0 (SelectionSet.ByElements)
* LinkDWG v.0.3.91 (GetCOMObjects, BlockProperties)
* spring nodes v.204.1.0 (SelectInRevit)
* my own package (for the custom node changed from LinkDWG.GetCOMAnnotationsByObjectDBX as described above)
Awesome work, thanks Paolo! Strange that the author disables their node...
@@AussieBIMGuru yes, actually sounds weird. Maybe they created the new node only for annotations and they "forgot" to leave the original one as it was. Maybe I'll ask in the dynamo forum to see if I can reach them.
For everyone's reference, the fixed node by Paolo has been added to the zip on github;
github.com/aussieBIMguru/Dynamo_Scripts/blob/master/ABG_200220_CADBlocks.zip
@@AussieBIMGuru Thank you and Paolo for this custom Node. How can we add it to our dynamo package library ?
I would look into genius loci package instead, this has better nodes for reading blocks now vs linkdwg.
Noting I use version 0.2.2 in this video.
Later builds appear to fail to collect the linked document DBX, suggest using the older build for now.
what is your dynamo version in this video?
I don't know why but I'm trying with the 0.2.2 version and it's not working anyway ... any tips? Thank you!
2.0.3 is my version.
I've heard from many having trouble with this package unfortunately, seems to only work in some dynamo builds. Annoying!
@@AussieBIMGuru Thanks! At the end I decided to use a workaround: use extract data command at autocad. it's been working pretty well actually :) It is a nice option for those who had the same problem
This is useful.
I have a question maybe its irrelevant to the subject... can you explain the mechanism you'r using with google remote ? Any server? .... ThankX
I used the web version of google remote desktop. Latency became an issue so I record from my own PC now though.
Hi, Your contents are soo helpful thanksdoc. I'm wondering , I have 200 tree blocks placed in AUTOCAD and now i want to replace all those 2D CAD blocks in revit with a 3D revit tree, Do you know a method to do this? It would be great if you could give a advise
Yes this workflow could likely do it as long as you have equivalent families for your autocad blocks. You could use index of/get item at index to check the equivalent family per block to place, using something like an excel file with the two columns being the CAD/Revit equivalents.
good work
Thanks!
What if the tree blocks names from CAD were different & not matching those of the Revit Family names?
Is there any package which renames those blocks on Dynamo & then make them match with Revit families?
I would create an excel file with two columns to match the CAD vs Revit names. Unfortunately Dynamo would have no way of knowing that the two relate without some sort of match-able criteria or convention.
If we don't have z value in autocad block(all block z value zero) and we have topography then what we will do?
Ignore AutoCAD z and host to the topography once it's added.
The script is very useful Gavin...!! I have a question.. I exported the revit sample file to dwg and tried to insert air terminals back into the revit and they are placed successfully. I rotated the family instances by taking the rotation degree values from cad but they are not rotated to the same position There is a dicrepancy in that which i could not figure out. Please help me on that
It probably depends on the origin of the rotation point, and also the rotation of the duct vs the Dynamo world axis'. It's fairly complex to cover in simple terms - would require you to analyze the block rotation from the DWG versus the default family rotation value, then set the family rotation to this difference.
Hi Gavin, as per usual I love your content, and this was very helpful so thanks!
I have a question regarding the insertion point. Once you have that in place and the 3D family is placed using the correct (center point in my example) How do you use rotation for that same object.
I have a nested family in my family and when using FamilyInstance.SetRotation the default rotation point is not in the center but slightly off. Do you have any knowledge to how you can reallocate or overwrite the rotation point in Dynamo or a script that does this for you?
Hopefully this makes sense. Thanks
If after the rotation you compare the placement point to the families new position using Element.SetLocation. If this reverts the rotation, then you may need to manually calculate the difference as a movement prior to rotation instead to compensate for this motion. No node I know of can rotate an element by any method other than its placement point.
@@AussieBIMGuru Thank you so much for the quick reply! That seems to do the trick with Element.SetLocation.
if we set unit in feet or inch in revit, how to manage in dynamo?
The unit convert utils class can manage this in revit API or if in dynamo you can use the convert unit node. Generally I only recommend building scripts for metric or imperial versus both.
Hi Sir. I dont know how to create custom script in dynamo. I just use purely revit. im working right now with placing hundreds of trees in my task. ive just tried to follow your process step by step, but to no avail, some nodes you mentioned is not available even though i already installed all required packages. Can you update this tutorial sir? or help me with this? Thank you
I may revisit this in future, but the node I would use is the CAD block node from Genius Loci package. Unfortunately the LinkDWG package doesn't work anymore. You can also use the dataextract command in AutoCAD to export block positions and names to excel but that is a more complex workflow
Excuse me, I would like to ask you a question. If my imported cad drawing moves, and then I use the linkdwg node, the coordinates of the points will move. How can I modify the coordinate system to make the points in the right place
I would add an additional translation (move) function in Dynamo as well to match the discrepancy.
But the key point is that I can't find the origin and rotation Angle of the CAD drawing. I don't have a node here that can read the position of CAD
@@tingyunmao8861 use a common reference or annotated coordinate in the CAD file (or the Id command in AutoCAD to identify a coordinate).
You can then measure and adjust the discrepancy between revit and CAD coordinates in Dynamo.
@@AussieBIMGuru In other words, I will mark the origin of CAD and revit on revit, and then measure it by dynamo and transform the coordinates
@@AussieBIMGuru I'm just going to make a family and I'm going to put it at the two origin points, and then I'm going to use dynamo to figure out the coordinates, right
please Dynamo allows you to replace the color of the centerline duct and pipe
I think object styles do that.
if I change the colors of the pipe system, the color of the axis also changes
@@askrinassim7290 yes i did some reading and it seems that it cannot be changed independently;
forums.autodesk.com/t5/revit-mep-forum/view-problem-colors-axis-ducts/td-p/6420828
How to scale dynamo geometry point?
If your origin is consistent you can get the point xyz values, multiply by a factor then make new points with the new values.
@@AussieBIMGuru ok.
Please show CAD Blocks to Revit doors and windows using Dynamo
It would be a similar workflow, you would need to find the block origin and how it relates to each door/window family. Then you could find the point that it sits at in host walls. I probably wont get back to the LinkDWG package for a while as I don't use DWG references very often in my consulting work, but maybe try and see how you go with experimenting with it!
Thanks
I'm using the same work flow for doors/windows family some areas window are created but some areas windows are deleted automatically in dynamo. please help me on that
@@fayazmohammad7688 they must be failing to place or host. Maybe try using springnodes for the hostedinstance.bypoints node if not already.
It could also be the family and the height its placed at, if it has no wall or only part of a wall sometimes it fails to host.
@@AussieBIMGuru Thanks for the reply I'm using springnodes only,but windows are deleted at some areas.
Is their any alternate method for placing the doors and windows ,I'm getting the exact points from cad plan ,But windows are deleted at that points in dynamo.Please Guide me on that It was very helpful for me
i think you should also tell the package version.
Bit late to add them now unfortunately!
@@AussieBIMGuru do u rem now ?
@@just_a_statistic nope, its been a while since i made this one. Generally its best to use latest versions of packages.
@@AussieBIMGuru but the latest package doesn't have the nodes u used.
Contact the package manager or try the package version dated around the upload date of this video. I'm nearly 100% sure there is nodes in genius loci to do this currently. Look in the package, dont just search.
Have you ever thought of just getting into programming and 3x-ing your salary ?
Yes but programming culture is quite toxic from what my mates in there tell me. Serious mental burnout and competition. I also like the field of architecture and the nature of problems I solve within it. Debugging wpf doesn't excite me as much!
I actually make at least double what most architects do around me just by consulting and selling my content so life aint too bad! Great question though, and appreciate people asking it. AEC salaries on average aren't great, need to negotiate and sell your skills hard to break the mould.