Placing model instances on top of linked models

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.

  1. I’ve got the location (origin) of the nested elements from the Crumple node
  2. I’ve got the location of the group
  3. 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)
  4. I’m trying to figure out how to convert from the Origin Point to Model Coordinates
  5. 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.

Oke so I’m trying to wrap my head around this.

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.

image
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
image

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.

To close this out, what I did was:

  1. Collect the Revit Links within the Linked Model (the architects federated model)
  2. 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
  3. Collect the location of those links
  4. Subtract the Z value between the original and the instances
  5. Take the Linked file A1 within my model and turn it into a group
  6. Place a copy of the group by the difference in Z values from the architects linked instances e.g. 5m between each instance
  7. Ungroup the group
  8. 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.

1 Like

Ouch. Great solution though.

But seriously… that had to hurt.