I have placed instances of a ‘triangle’ (generic model adaptive) family in my project. I want to extract the xyz coordinates of the three vertices which make up this adaptive component. Can anyone teach me how to go about this with dynamo?
Edwin, since you're asking: I have been using selections by category for a while now in Dynamo. Zach is right, it's just a bit of Python.
I just shared my category-related nodes as a package called "Select By Category". It doesn't have all the revit categories, just the ones I had needed so far, but I added a node that lists all the available categories, so it would be easy to make new ones. I will keep this in the package manager until there are built-in nodes for this.
Since this has been one of my secret wishes for some time, I also created an issue on GitHub.
Edwin . . . By category? Not at the moment . . . it's probably a tiny python node if you really need it. Or, isolate category in view, Select Element, box select everything.
Here's the workflow for extracting and writing location data to a String parameter. Needs a little special treatment using a Combine node to get all the data back together using a Concatinate String Node. That node should probably have automatic handling of lists but it doesn't yet. This collection of nodes will write out to as many of the particular family types as you have in the document.
You need to convert the point from a number to a string. One way is to add a XYZ->X first then convert to a string (Number to String), then you can push it back to a parameter. I have not found a way of adding the three points to one parameter all at once since if you convert the point (with three numbers) to a string, you get an error probably due to how it is stored in the list.
Please see attached screen capture. I tried to isolate a single family instance by isolating its index in Dynamo. Idea was to run some kind of recursive loop to write the location values back to the 'Comments' parameter of the adaptive component and schedule in revit.
1) I have assigned a value to the instance 'Mark' parameter for the adaptive components I placed in revit. I tried reading this value in Dynamo with a 'Get Family Instance Parameter Value' node but no success (see screen capture)? please help troubleshoot.
2) I will write this data out to a file. But it would be nice to push this info back into revit and put it in a schedule. I tried using 'Set family instance parameter' but no success (again see screen capture, this actually gave me a crash)? please help troubleshoot.
go to the package manager, you will find a custom node by Andreas Dieckmann called xyz from adaptive component if I remember well. give you x y and z from a component.
I am trying to do this on 7.2 but I have no clue how. I’m currently trying to get the coordinates for a set of family instances on a Revit project but I’m getting errors from the FamilyInstance.Location node.
Hi Zach, I am doing a similar process and was interested in the Dyn file you mentioned here but I am unable to find it. can you please share it, thanks.
Hi,
Most of the functionality referenced here has been superceded by better stuff, those 0.6 files probably wouldn’t open anymore without doing some intermediate version upgrades. The reason that location extraction is weird is that all the different kinds of elements and families in Revit have a ton of variations in what is used to place them, and the API interfaces are also remarkably different. If you are looking to extract location information from Families, you might try these:
It also makes a difference if the Family is inside an in-place family, a loaded family . . . and if the family is shared or unshared. Fun!
Hi Zach, I eventually got the script to work but it did not return the correct values for the coordinates. Since its a nested adoptive component in an adoptive component family it does not reference to the origin point of the family as the point to extract the coordinates. Will try the ones you mention to point to the location. Also its a share parameter and makes it even more tricky. Thanks for your assistance.