Skip to main content

hi everyone,

I will give some background information beforehand. I have one dgn file that consists of many models (each model does represent a floor of a building) and the dgn file consists roughly of 1.5 million features (yeah, that's a lot for one building). The idea of my current script is that at first the dgn file is read, some transformation steps take place and finally each floor will be written to a seperate dxf file. So far so good, since each floor/model needs to exported to a sepereate dxf file.

 

However, after some time only a few adjustments are to be made (e.g to only one floor and thus only one model is adjusted in the whole dgn file. Therefore I would need to run the script to overwrite the output of that specific model/floor since changes have occured.

 

I would like to know if there is a possibility of reading the dgn file and only taking the features of that one model that has changed within a certain time. This might reduce the computing time of the script tremendously. I wouldn't like to run all the models and the 1.5 million feature again. However, I probably think that wouldn't be possible.

Hi @joy​,

I would probably choose to read the original DGN file and add another reader for the updated DGN file, and do some change detection (likely using the ChangeDetector) to narrow down which models you need to update, then only update those ones (ex. Tester to filter and then route passed features to the writer). Unfortunately I can't think of a reasonable way to avoid re-reading the whole DGN file. Disabling feature caching can speed things up a bit once you've created your workflow and smoothed out any snags. You can do this by going to Run and uncheck 'Enable Feature Caching...'.

 

I'd opt to do it this way because it would be the most autonomous method to be able to also update the dxf file(s) without having to manually go in and pick out levels to read in that contain your changes. If it's very slow to process, you might consider breaking it down to compare output DXf files instead to try to see if that may be faster, but it would involve two runs of your original workspace- one with the original DGN source and another with the updated DGN file first.

 

Hopefully that provides some ideas!


Reply