Slow filter on meshes

Hi good guys! I have a little question for you…
I am using this block of code to filter the objects from Rhino in order to pass them to REVIT. I need to identify Breps, meshes and blocks, to send them to the right REVIT Family component so I am filtering object types with Filter content.
But the “mesh” content is passed very slooooowly. I have 1717 breps and 530 (pretty dirty, coming from suppliers) meshes. Breps take less than a couple of seconds, while meshes take 1’30’'.
Any hints?

Hi @user1841,

What Key are you using?

ObjectType

Could you please try using this value list instead of feeding it with a text?

ObjectType.gh (4.7 KB)

This should be three times faster

Sure for the first thing, as regards the second one I tried using content grouping but it messes up the trees (I am using layer filtering that allows me to have a tree structure referred to layers), that I need to be consistent in order to assign family names from parent layer names. Grouping flattens the trees, it seems (well, it outputs something that is no more consistent with the input they receive). I am an architect, not a programmer, so maybe I’m missing something but…
I’ll post the routine here, if you wish.

Does using the value list help on improving the performance?

We may want to release a specific component for splitting by a property.

Gimme a minute, I’ll try and be back to you.
That would be super! I’m having problems with elefront that on meshes is too picky. So I used native Rhino 8 components with just one elefront component. Rhino native are way faster right now.
Another thing that we need for REVIT is iterative management for blocks. Or at least an iterative explode.


Using the value list does not change the things. Still 90 seconds to process the meshes.
Also the following component (Component Family Mesh) is very slow. That mesh pipeline (filter+CFM) takes 4’30’’ to send the meshes through. Probably it gets slowed down while processing badly formed meshes (remember that with EleFront Filter by Type it gave me a critical error).

Does ‘Null Item’ report meshes as invalid?

yup:

@kike So, I repaired the meshes… But, I get this message. Nothing changed inside the 3dm file (Validity of the file is ok, purged and audited). The gh file is the same I used after your suggestions. I reviewed it but nothing seems different, except for this error. The only thing I did in between was updating Rhino. It gave me also a couple of crashes in REVIT. Any ideas of what it could be?
(I have a guess… but I need to check one thing. It seems to me that you changed a behavior of a component in the new update, that does not accept something)


Ok, I think I found it. It seems that now, when I assign a new layer name to a Layer which is empty, it creates a null item and that item cannot be processed by the filter…
I can’t remember if the null item is a new thing or if the filter is pickier than in the previous release.

If I insert a CleanTree, it works again

Thanks,
R

Hi Roberto,

Please provide your current Rhino.Inside.Revit About info and a small example exhibiting the behavior. Thanks

https://discourse.mcneel.com/t/help-us-help-you-rhino-inside-revit-edition/170291/9

Hi Japhy!

When I asked for the version of RIR Rhino Crashed, followed by Revit.
Anyway, her is the info:
Rhino.Inside Revit: 1.22.8880.20258 (2024-04-24T11:15:16)
Rhino: 8.8.24135.14001 (Rhino 8)
Revit: 2025.0 (25.0.2.419)
CLR: 8.0.5 (8.0.5+087e15321bb712ef6fe8b0ba6f8bd12facf92629)
OS: Microsoft Windows NT 10.0.22631.0
And here are the files.
RH_8_family from Rhino to Revit_R09.gh (74.3 KB)
RH_8_Test null layer.3dm (46.6 KB)

Thanks, keep an eye out for a new Release Candidate today, there is a fix in for this. Not seeing it in the daily at least.

1 Like

Any idea on why I’m getting this in the former GH definition I sent you? I applied it on the first floor and it worked, except for the mirrored blocks. When I apply it to the second floor it gives me this errors


The Rhino file is Valid, all meshes have been rebuilt, no errors, purged, audited etc. I get no other error in the Grasshopper definition except for the two NewFamilyComponent.

I’m also puzzled by that “Walls” is not subcategory of Furniture… Where does it take it?!

Thanks,
R

The file above doesn’t contain all the necessary info…

https://www.rhino3d.com/inside/revit/1.0/guides/rir-grasshopper#tolerances

Those errors are typical of Geometry outside of Revit Tolerances

That 3dm file was just to discuss this issue here:

The full file of my first floor that shows the tolerance error in my last post is 185 Mb. Do you want a link to it?

The workflow is viable but i would start in isolation (a simple definition for each layer), get it working and standardized, then try to add multiple layers.

The preview geometry should show you where the areas are that its having troubles. One again, better dealt with in isolation, finding one bad and seeing what can be done to get it across.

Will do. Thanks! I’ll try to start with the definition as it is, locking components and checking it layer by layer with the bylayer pick list. Seems a good way to check why the model has errors. My idea is to standardize the workflow of my collaborators at the office to get always good model that can be eaten by REVIT through GH.
It would be a good idea to have from you in the next releases of Rhino a “REVIT” units default template between the standard templates in Rhino with the tolerance already set to 0.1mm… :slightly_smiling_face:

The “wall is not a subcategory of furniture” is because the polysurface of Rhino that I’m trying to send to a furniture family was a formerly imported wall from Revit, baked to Rhino, that was heavily manipulated but it kept Revit’s attribute of wall category… This is going to drive me crazy.