Microstation V8i - Element selection based on touch / collision

Hi,

I'm looking for ideas on how it would be possible to select particular text elements based on whether they "collide" with a selected line element. 
Are there any creative ways to do this with the built-in tools? 

Here is a link to a test drawing.
The purple lines are already in a graphic group. 
https://drive.google.com/file/d/1DuSdb6UG7KEXoC_6Nq3YM4XEUXFG0ivD/view?usp=sharing

Here is a higher res version of the image

Parents
  • The most creative way I came up with is to draw the grid as shapes with offset 1mm from lines. Then merge those shapes as grouped holes and create fence from these grouped holes(place fence element). Afterwards copy fence contents with mode overlap. But it is very slow approach.

    It selected 296 text elements.

    2806.test.dgn

  • Oh, you really win the price for the most creative approach (and there was no requirement for efficiency and speed in the question) :-)))

    Regards,

      Jan

Reply Children
  • Oh, you really win the price for the most creative approach (and there was no requirement for efficiency and speed in the question) :-)))

    Hold your horses, my entry has yet to be seen! Sunglasses

    I was actually thinking that the Clash Detection tool might be useful in this case for detecting "collisions" of the lines with the text elements.

    Except that it does'nt work with 2D elements (from my testing at least). However, the approach of using Clash Detection was also my first thought, but to make it work needs a few tricks:

    1. The existing DGN file only contains a single 2D design model so we need to add a 3D Design Model
    2. Once created, attach the 2D Model, and merge the reference file into the 3D Model.
    3. You'll see me clean up the geometry to levels of my own and adjust the colours slightly (personal preference but not necessary)
    4. Text elements can be extruded but each letter becomes its own smartsolid so another approach is needed. I was going to write some VBA for the next step but  has already written a utility that does exactly what I need. His utility is called TextAnalysis (download from this page on his site, here) and it draws a rectangle using the boundary points of each text element, precisely what I am looking for.
    5. I move these shapes onto their own level, and then extrude to a pre-set size.
    6. Next I select the gridlines and use Extrude Surface (as Extrude Solid won't work on lines) and extrude to the same size.
    7. Open the Clash detection dialog, create a new job, add the solids (text boundaries) and surfaces (gridlines) levels into Set A and Set B, enable 'Suppress clashes within the same level', and click proceed.
    8. In the results, I set the options to show only the clashing solids for a visual check.
    9. Select the first clash and press Crtl+Shift+Down Arrow to select all clashes.
    10. Right click on the one of the clashes, and pick 'Add to Selection Set'
    11. Close the clash detection dialog, and choose save when prompted.
    12. Finally, activate the Item Sets dialog, create a new item set (I named mine Clashes) and add all the selection to your Clashes item set. Activate a Display Set, select nothing and then select only the solids (Text Boundaries) and add them to their own Item Set.

    I ended up with 293 clashes, and a video of the outlined steps can be seen below:

  • Hold your horses, my entry has yet to be seen!

    I agree the requirement to convert 2D data to 3D and to require extra license for clash detection represent another level of "creativity" :-)

    Regards,

      Jan