I am currently managing a single project that contains 320+ P&IDs and growing. I am using PlantDataManager to make large amounts of data changes en masse on several drawings. The problem I am running into is that because the drawing data is stored in the actual .dwg files, P&ID requires me to open all of the drawings affected by the changes I am making. Upon importing my changes from PDM, P&ID opens these drawings and usually locks up, goes idle, or crashes after 70+ P&IDs are open. I have 32GB of RAM, and my process never reaches anywhere close to 100% usage when running the data import, while RAM usage tops out around 8-9GB. I've noticed that everytime I purge the local data cache, it always tops out at 69-70mb.
I think the problem of the program locking up or crashing has something to do with the cache only allocating 70mb to my operations. Can anyone confirm this? If so, is there any way to allocate more memory to the local cache to allow larger amounts of drawings open at any given time. This is becoming a huge setback to the data-side of this program.
I don’t think we have any limitations on the local cache.
Are you closing the drawings after opening them to process them? Our migration and validation features have been tested to process 100s of drawings but the key is to open, process, and close each drawing. Otherwise, AutoCAD will eventually run out of memory with so many documents opened.
What kind of changes are being made that require opening the drawings?
Is PlantDataManager an external tool or are you referring to the Data Manager inside the product? If the former, I'm not sure how I can help you.
Sounds like you'll have to do your changes per drawing. I have run into the same problems with large projects on a machine that only has 6 GB of ram. When I do an import I segregate out the import data by p&id number, so the initial data can be manipulated within a large excel sheet, then all you have to do is portion out the update to multiple excel files. It's not as time consuming as you'd think as it's really only copy/paste operations. With as much ram as you have I'm guessing you could do multiple p&ids at once, just not all at once. Hope this helped.
I am using PlantDataManager - a 3rd party utility from Carsten Beinecke at CadStudio. It functions the same as the Data Manager as far as data imports are concerned. In both PlantDataManager (PDM) and the Data Manager (DM), each individual drawing must be opened, have the data changes imported, and then be saved/closed (PDM has a feature to auto-save/close after all imports have been made however). The problem I'm finding when using both PDM and DM is that all of the drawings that are affected by the changes must all be opened concurrently until all of the data has been imported, and once 70+ drawings are concurrently opened, P&ID tends to crash or go idle. There is no way that I know of when importing large amounts of data changes to open/import/save/close one drawing, then move to the next drawing affected and open/import/save/close, it appears to want to keep all drawings open until all changes have been imported before you are allowed to save/close an individual drawing.
I'm trying to add a value into a custom property called "spec choice" in all line segments - which I will then map to an external table which will normalize all valid service/spec/insulation-types throughout our project to match what's allowable in our company line spec...if that makes sense.
George - Thanks for the info. I've considered that, but it will make my effort take an extremely long time since we're currently pushing 330 P&IDs. I really need a more reliable automated way of making these changes. Especially since I'm adding info to all line segments in the project - which requires me to open all of the accompanying drawings affected by a single line change - so the overhead becomes quite large very quickly.
I have a bad feeling you're going to run in to the blame game on this. CadStudio will say it's an audesk problem and autodesk will say it's a cadstudio problem.
If you batch out the 330 dwg updates to lets say 50 each set (70 being apparently the max), it'll only be like 6 to 7 updates. While not great, atleast it'll work. As far as adding a new property to lines, you shouldn't have to update each drawing for the new property to take effect, not updated to a new value, just the creation of the property itself. If possible try and use a calculated property for whatever it is, potentially making the calculated default the correct value from the get go. Or at least choose a default that would cover a majority of situations, then potentially the update would be cut in half.
Unless the property value changes you are making affect annotations in the drawing, then there is no need to open DWGs. You could develop a standalone app to do this work.
If opening drawings is necessary, then I would recommend developing a plug-in to do this inside P&ID that opens / closes DWGs one at a time.
Hope this helps.
Now my curiosity is piqued. Is there a way through the api to write a plugin that will automatically load an excel file for updates and have it accept all changes and automatically ignore all errors and then proceed to chain load the next excel file and repeat the process? This could come in quite handy for a lot of people.
Yes, the Plant SDK includes PnPDataObjects.dll (.NET assembly) and respective documentation. Via the API you can open the .DCF access rows in any of the tables, change column properties, etc.
Of course, beware that automatic Tag property assignment and rules used in property acquisition/propagation will not be active as these rules are applied at a higher level of the application stack (business logic level). The PnPDataBase.dll APIs give you access to the data layer.
Along with George, I am also intrigued by the concept of a standalone app accomplishing this task. I believe this plugin you are referring to will lead to the answer for both this issue as well as the other issue that I emailed you and Sasha about earlier this week. Unfortunaltely, we don't have any in-house developers, but would definitely be willing to contract development of such an application out to someone. I know Autodesk has folks such as Greg Wesner, who specialize in development of additional standalone applications for use with Autodesk programs. I can also see our firm looking for this plugin with an accompanying GUI as a more long-term solution. Do you have any recommendations of where to start, or who I could contact?
Thanks again for this information!
If you download the Autocad P&ID Plant SDK and open the Plant SDK Developers Help file --> Data Manager --> Data Objects --> Data Objects Extensions
The example given looks exactly like what you want to do except with an access db instead of excel. In terms of allowable spec checking and uniformity it appearse do-able as long as the excel is set up correctly. With that example you can automatically change other properties based on other property values. So as long as they pick a spec for the segment that is populated by you and is a list within P&ID you can have it traverse that spec and have it populate out correct properties. As an example: paint code, insulation thickness table lookup, etc.
With this it could alleviate the engineers from doing a lot of work and the drafters/designers from a lot too.