I’ve been provided a container/federated Revit model with all the Revit links I’m supposed to use on a project, the federated model is made up of multiple instances of a model (e.g. Zone A is stacked 5 times on top of itself, then Zone B stacked 3 times of top of itself).
Because of some ACC limitations around nested links where none of the attached models appear ,what I plan on doing is taking the Zone A model (the version that’s linked into my model) and placing multiple instances of that model on top of where it’s located in the federated model. That way I control the version of the Zone A model rather than whatever is attached to the federated model.
I’ve seen some other threads about placing multiple instances of a Revit link, but I’ve made a group of the ‘master’ Zone A to try make placing the link multiple times a bit easier.
I’ve got the location (origin) of the nested elements from the Crumple node
I’ve got the location of the group
I think I’ll need to transform the group Z point to match the master Zone A point (since the group and link model likely have different family origin locations)
I’m trying to figure out how to convert from the Origin Point to Model Coordinates
Once I have the location of the links in Model coordinates I can place the group types
As a workaround I’ve found the difference between Z values of the duplicate zone A model origins, and used that to get the location of where I want to place the groups. But that only works because it’s the same offset for all instances of Zone A and I’d like to be able to manage this process for different level heights.
You have federated model A. You are trying to load in multiple instances or copies of Model B. But you can’t so you turned them into Model B groups
But you’ret trying to find their origin points and set them so the Z values correct.
This sounds like some smart workaround engineering to me. So I am not sure what the exact problem is? This script only seems to get coordinates and not split up any linked files
That’s a good summary, where I’m struggling is converting the locations of the nested versions of Model B inside the federated model (aka B-1, B-2, B-3, etc) to model coordinates as to place the groups the node uses the model coordinates.
For now I can use the difference in Z values between the nested models to generate a list of points to place the group as many times as needed, but I don’t like how manual it is since I’m taking the location of the group and only changing the Z value on the assumption they’re exactly on top of each other. So if there’s changes to the federated model or a model C, D, etc it will be hard to update, which is where I’m looking for some help.
As once I have those points then adding a bit more to the script to place the groups and ungroup them is pretty straightforward.
Might be easier to export the link instance locations and type information from the received model to an intermediate file (txt, csv, json). You could then make a new model with each of the link instances recreated from that data.
Note that you may have to deal with misaligned coordinate systems if you’re a few levels deep, but that will have to happen with the groups method as well.
You can then run the ‘extract links’ automation on each received model, compare the output to your prior output, and update link instance locations accordingly.
I think you are trying to do this.
So the problem is recurring updates and having to repeat all the steps.
Then in that case I would make sure I would only have to set coordinates once
Sure it’s some fenagling setting it up. But with every update you can be assured everything is in the same location and doesn’t need any group exploding.
Collect the Revit Links within the Linked Model (the architects federated model)
Identify which was the ‘original’ link e.g. Linked File A1 is at L1, and which was an instance of the link e.g. Linked File A1 at L2,L3, L4
Collect the location of those links
Subtract the Z value between the original and the instances
Take the Linked file A1 within my model and turn it into a group
Place a copy of the group by the difference in Z values from the architects linked instances e.g. 5m between each instance
Ungroup the group
I now have the original Link A1 and then 3 instances of A1 all aligned with the location of the architects nested link
After creating the script the architect decided to switch to groups instead of link instances so the problem resolved itself and there were no more nested models.