Hi all, bit of an odd question today.
I’m essentially trying to rescue a whole host of existing building dimensions from an archive file that have “fallen off” the live model. They are all referencing a linked survey model, so the reference points are present in both models.
I’ve mocked up a simplified example to test with, I’m looking to copy all the dimensions in the green tab model over to the orange (for select views of course).
The orange model is currently displaying a “By Linked View” of the green model, but it’s only displaying the dimensions hosted purely to elements in the green model.
The Bimoprh Nodes “LinkElement.CopyToActiveDocument” is understandably throwing up an error because dimensions are view specific.
My desire is to create a script that allows me to select a view from the green model, and the corresponding view from the orange model, and copy all dimensions in the green view to orange.
happy to be corrected, but I don’t think this is possible due to the way that Revit dimensions reference specific objects (not like AutoCAD dims which are just floating in space
I hoped this would be ok in my instance, since the dimensions in both models are all from a common linked survey model, so the reference objects are consistent in ID & location.
it might be partially doable… however I would file this under “things which are too risky to automate”, as there is a high likelihood of something going wrong and you missing it until well after the fact. And so you’ll have to review each dimension by opening the view in each model and comparing the 4 dimensions in model A to the 4 dimensions in model B to confirm things worked. Likely easier to overlay and trace, or (best option) automate creating the dimensions in the first place.
Kind of. Previously you were dimensioning to faces so I’m going to assume you’d want to do the same (points are less stable due to visilibility). Dimensioning is fairly involved actually but the outline steps are below.
Set the view in which you want to place the dimension.
Get the first thing you want to dimension to.
Extract the face in the view of the thing where you want the dimension to associate.
Generate a reference to the face of the thing.
Get the second thing you want to dimension to.
Extract the face in the view of the thing where you want the dimension to associate.
Generate a reference to the face of the thing.
Repeat steps 5-7 as needed for all the faces you want to dimension to.
Confirm all faces are parallel with each other and thereby valid for dimensioning; if not throw an error.
Get a point between the two faces and generate a line that is perpendicular to the selected face.
I would say that copying of dimensions is faster solution. At least it’s better to quickly try to copy and get 80% of dimensions than to re-create them from scratch.
Of cource, creating of dimensions is more reliable and long-term solution, but it takes much more time to create script to cover all cases for dimentioning. IMHO
With ctrl+c and ctrl+v sure, even if you had 100 views. With Dynamo? Takes longer to build then the automated dimensions as there are actually more edge cases to catch as you have all the same dimensioning ones and a few more.