After reading this topic, I thought I should mention this problem I experienced just recently.
The file I was working with is a building which was converted from *.ifc
It contains blocks, meshes and breps. One mesh in a block is invalid.
Since I was just going to shrinkwrap all geometries in the file, I thought I would simply use the Eplode Object component. Unfortunately the component fails to output anything if a branch contains an invalid mesh.
This can be problematic on large files with a lot of geometries.
I spoke with Kike and we both agree that it would not be the correct behavior to switch the explode component to return invalid objects. We feel that it is better to only return valid objects and make the user aware if there are invalid objects that were not exploded. To this end, the explode component will now return a warning if an invalid object is passed into the explode component with some additional information as to why that particular object was failing to return anything.
However, to ultimately get at a list of objects that represent what it is that you are after, it is possible to use a the Null Item component in tandem with a Pick N Choose component to reconstruct the list of objects. I’ve attached an example below.
I don’t agree with this approach. I’m currently working with blocks that are imported from different software, and there are some invalid surfaces in the block, but I don’t care about that as 99% of the block is perfectly fine, but the component refuses to provide me with ANYTHING. (Same goes for meshes that I can often repair to be valid).
I believe the correct approach is to give the user the invalid content, but show a warning. Let me as a user decide what I want to do with the invalid content
Please please please let data pass through and avoid the assumptions of what the user needs. This is causing quite serious issues on a project I’m working on.
Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 128GB)
.NET 7.0.20
Computer platform: DESKTOP
Standard graphics configuration.
Primary display and OpenGL: NVIDIA RTX A5000 (NVidia) Memory: 24GB, Driver date: 11-13-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 553.35
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0
- Secondary monitor attached to adapter port #1
Secondary graphics devices.
NVIDIA Quadro K2200 (NVidia) Memory: 4GB, Driver date: 11-13-2024 (M-D-Y).
> Accelerated graphics device with 4 adapter port(s)
- There are no monitors attached to this device!
OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)
Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High
Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 11-13-2024
Driver Version: 31.0.15.5335
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 24564 MB
Rhino plugins that do not ship with Rhino
C:\Program Files\Rhino 9 WIP\Plug-ins\ConstraintsUI.rhp “Constraints UI” 9.0.25021.12305