Is there an easy way to open all models in a DGN file so that they update data?
When we change the Title properties on the DGN, the models do not update unless they are opened.
Currently we have to manually open each sheet to get the updated data.
I want to automate opening all sheet models so they get updated.
Either just in the active DGN or list DGN files and run it against the list.
We tried using Print Organizer, but it did not update the data.
Much thanks for any input.
OpenRoads Designer 10.08.08.33
HI Gene,
Have a look at this post. We went down the macro route but now scrapped them after changing a few variables and workflows:
https://communities.bentley.com/products/microstation/microstation_printing/f/printing-and-plotting-forum/213668/connect-fields-do-not-update-during-printing/648845#648845
Regards,
Mark
OpenRoads Designer 2023 | Microstation 2023.2 | ProjectWise 2023
Thanks, but I tried the Print Organizer route and it still does not update the Sheet information as needed.
I will write a VBA or C# to address the issue.
Thanks to all for the help!
Mark, thanks, but we do not install updates to MicroStation.
It causes conflicts with our previous versions which we still use on active projects.
We also only use 1 version of ORD, so we don't get files which cannot be opened in .08 or are not FDOT compliant.
It's not the plotting we have issues, it is just the fact that you have to go into each model to get the updated data to update.
We will use the VBA until future version of the software get fixed and FDOT accepts them.
Fair enough, this VBA code should do what you need:
Sub run() Dim oModels As ModelReferences, oModel As ModelReference Set oModels = ActiveDesignFile.Models i = 0 For Each oModel In oModels If oModel.Type = msdModelTypeSheet Then i = i + 1 End If Next If i = 0 Then ShowMessage "No Sheet models found in current DGN", , msdMessageCenterPriorityError, True CommandState.StartDefaultCommand Exit Sub End If j = 1 For Each oModel In oModels If oModel.Type = msdModelTypeSheet Then ShowTempMessage msdStatusBarAreaMiddle, "Updating fields in Sheet model " + CStr(j) + " of " + CStr(i) + "..." oModName = oModel.Name CadInputQueue.SendCommand "model active " + Chr(34) + oModName + Chr(34) + ";field update all model" j = j + 1 End If Next CadInputQueue.SendCommand "beep" ShowMessage "Field update of " + CStr(j - 1) + " Sheet models complete", , msdMessageCenterPriorityInfo, False CommandState.StartDefaultCommand End Sub
Answer Verified By: Gene Heatwole
Mark,
You are a persistent son of a gun. :) (in the good way. HaHa)
I already wrote the VBA, but I will mark your answers as Verified.
GREATLY appreciate your time and efforts!
haha more for the benefit of all. No probs at all.
FYI, This latest version of ORD (2021 R1) permits you to install parallel with prior versions, so you can currently have whatever version was your "latest" and this new release on any users PC. Then, as long as your users understand the pitfalls of upgrading and earlier version file, you can do what Mark suggested, even if only for Sheet production.
Charles (Chuck) Rheault CADD Manager
MDOT State Highway Administration Maryland DOT - State Highway Administration User Communities Page