BLOCKIFY fooled ?

Michael Mayer
edited May 2021 in BricsCAD BIM

I have an IFC import of a Buildings Sprinkler assembly by IFC.
(It would be nice to have these details in a Visualization)

The Geometry may have been exported from Microstation.
Unfortunately there are 990+ Sprinklers imported as Blocks.
Even more unfortunately, imported each a separate Block, although they are the same
(Pseudo Cells from Microstation ?)

Each Block has 75 crappy geometry entities :
A few Solids, Surfaces and Regions.

So I thought I could just explode all of the same Sprinkler Blocks,
select all Entities and run BLOCKIFY.
So I select all Sprinklers geometry, BLOCKIFY ....
Unfortunately, Blockify says it excluded a few of incompatible Entities
(Surfaces or Regions !?)
starts to calculate and ends with just a message that it did not find
any instanced geometry.

I don't know if there were any accuracy problems that each separate Block'S
geometry was really different, or that BLOCKIFY failed because of excluding
unwanted geometry in process but compared to initial complete Selection.

Comments

  • Just some speculation here...Is it possible that that geometry was exported at a lower number of decimal places than would be ideal. Actually, perhaps just the act of those blocks loosing their definition may mean that each copy has had its entities slightly changed by rounding. Though, I would think that BricsCAD would have some ability to adjust for these minor variations.

    You might be able to verify this, if you place two of the blocks apart from each other, by perhaps 10 units. Then, it may be viable to compare the two by perhaps just listing some entities. Note that you need to change your unit's precision to the maximum.

    -joe

  • Hi Michael,

    Thanks for making this forum thread! In my previous role at Bricsys, I have developed the Blockify command.
    Based on your explanation, I currently see no conceptual reason why Blockify shouldn't be able to handle this case. I agree it could be because of some entities where filtered out of the selection set - or because of tolerance issues, which we have encountered in the past already.

    Anyways, the Blockify command should support this kind of scenarios. Would it thus be possible to file a support request via BOA, and attach the file with the exploded blocks (or maybe a trimmed-down version of that)?

    I'd like to note that the step of exploding the blockrefs is obsolete. In BricsCAD V22, we have added an option to the "Overkill" command, to delete duplicate block definitions. This option is based on the Blockify functionality under the hood. What it does is exactly what you need: it looks at the present block definitions in the drawing, looks for duplication, and when found it deletes all duplicate definitions - but one - and re-references all the block references to that single remaining block definition. Quite cool, no?

    Thanks in advance for filing the support request in order for use to improve Blockify,
    Kind regards,
    Wouter

  • @Joe Dunfee said:
    Just some speculation here...Is it possible that that geometry was exported at a lower number of decimal places than would be ideal. Actually, perhaps just the act of those blocks loosing their definition may mean that each copy has had its entities slightly changed by rounding.

    -joe

    Thanks Joe, I also think this is very likely.
    I will look a bit deeper into it, maybe I can see some differences in Properties

    Thanks Wouter,
    lots of info.
    I will file a SR with test file soon.

    If it is a precision issue,
    I found a BLOCKIFY Tolerance in settings. Currently (by default?) it is set to -1
    (= No tolerance ?)
    Maybe giving some more room for sloppiness there would do the trick (?)

    And I have to look into Overkill too, in general.
    I often get blinking parts of geometry where 2-3 same Walls or other elements sit
    over each other. Mostly just duplicates, but sometimes they differ in Material,
    Layer or Composition though.

  • Michael Mayer
    edited May 2021

    @Joe Dunfee said:
    Just some speculation here...Is it possible that that geometry was exported at a lower number of decimal places than would be ideal. Actually, perhaps just the act of those blocks loosing their definition may mean that each copy has had its entities slightly changed by rounding. Though, I would think that BricsCAD would have some ability to adjust for these minor variations.

    You might be able to verify this, if you place two of the blocks apart from each other, by perhaps 10 units. Then, it may be viable to compare the two by perhaps just listing some entities. Note that you need to change your unit's precision to the maximum.

    -joe

    I looked deeper into the geometry.
    It is strange.
    Basically the geometry is identical for many digits.
    But the geometry is so corrupt that there differ some secondary values
    in Properties/Mass though. Like Area is the same but Perimeter differs
    for Surfaces.
    If I do a DMSIMPLIFY, which works reasonably, sometimes some single
    Vertex is far off. Something I see quite often in IFC (or Revit ?) Imports.
    Which often corrected automatically when just BLOCKEDIT and saving.

    But I tried a standard AUDIT/Fix on such a (Microstation ?) IFC Import,
    (around 450 MB after exploding the Sprinklers)
    which did not finish after 24 hours so I force quitted Bricscad.

    Same for an "OVERKILL" clean Blocks which ran for 20 or so ours and
    was force quitted by me ....

  • Michael Mayer
    edited May 2021

    If someone wants to try,

    here is a cleaned up version from the initial 500 MB DWG after IC Import
    and exploding of the 900+300 Sprinkler Blocks.
    Everything DMAUDIT(ed separately), PURGE(d) and DMSIMPLIFY(ed)

    Each Sprinkler consists of 75 Entities (Solids, Surfaces and regions)

    But even if I reduce Selection of a single Sprinkler to just its Solids,
    BLOCKIFY will not find any "Repeated Geometry" from the other
    Sprinklers around.

  • @WouterNys said:

    Thanks in advance for filing the support request in order for use to improve Blockify,
    Kind regards,
    Wouter

    DONE

    SR125720