Anuncios
Welcome to the Revit Ideas Board! Before posting, please read the helpful tips here. Thank you for your Ideas!
cancelar
Mostrando los resultados de 
Mostrar  solo  | Buscar en lugar de 
Quiere decir: 

hide elements in linked model

hide elements in linked model

This is a very important functionality that we need for our interior design firm.  We work on large hotel projects within the architect's linked model.  If we are working on a design option within the architects linked model, we need to be able to remove certain bits of the architectural work so we can draw our revised layout proposals.  This is extremely painful to do under the current circumstances.  It is crucial to our work to be able to hide and unhide elements within linked models.  This is not possible using the API either...believe me, I've tried:

 

https://forums.autodesk.com/t5/revit-api-forum/hide-elements-in-linked-file/td-p/5777305

 

James

37 Comentarios
james.levieux
Advocate

So is this impossible?  I feel like I'm shouting into the wind here but I'm just going to keep going on because my life is hell no matter what I do....

 

  1. Selection filters that work on linked models are ESSENTIAL for interiors work.
  2. The architect won't commit to changing their shell until we have approvals from ownership.  So we are FORCED to do all our presentation drawings by modifying their shell model using "hiding in view".
  3. Most Revit user who work with linked models know how stupidly difficult it is to select multiple elements in a linked model...and then have to do it over and over again IN EVERY VIEW so each view looks consistent.
  4. Rules filters are NOT adequate for the wide variety of elements that we may need to hide.
  5. Asking the architect to use additional worksets or design options is not an option.  We need to be able to hide  a wide selection or random objects unilaterally and globally or our life is hell using Revit.

I love Revit but I hate this shortcoming just as much.  It makes me sad that this wonderful product does not deliver for us.  We will still use Revit (because that's how we get some of our jobs) but we don't LIKE it.

 

James

jeremy_tammik
Autodesk

Thank you for your perseverance and passion. I passed this on as well. I'm sure you will be heard sooner or later. Looking forward to hearing their response.

Mbruno-JDB
Advocate

@james.levieux ,

 

I'd just like to say that I work in Foodservice consulting.  We have same issues with hiding walls in linked models, drawing in our own to show the architect where we want them.  Then we have to check updated models to see if the hidden walls have been fixed, then unhide them and delete our walls.  If we still have to hide walls once we're into CDs, it's so many more views that have to be manipulated.

I've been trying to come up with a better process, but so far it's eluded me.

 

lvirone
Enthusiast

Hello everyone,

 

I've found a solution:

//Select elements using UIDocument and then use PostCommand "HideElements"

//elemsFromRevitLinkInstance is "List<Element>", there are the elements you want to hide in the link
var refs = elemsFromRevitLinkInstance.Select(x => new Reference(x).CreateLinkReference(revitLinkInstance)).ToList();

uidoc.Selection.SetReferences(refs);

uidoc.Application.PostCommand(RevitCommandId.LookupPostableCommandId(PostableCommand.HideElements));

 

I've posted the solution in this thread too: https://forums.autodesk.com/t5/revit-api-forum/hide-elements-in-linked-file/td-p/5777305

rmc9WR3X
Advocate

This should be basic functionality. In our industry we send out RVT models and our clients often take our custom elements and reposition them as they wish then send back their site model including our elements. This is handy for knowing exactly where they want things, but is a massive headache because Revit has no way to target and hide our elements since all the target words like Manufacturer field and description also apply to our newly placed elements in the current revision. So we have to manually Hide Elements in every view by individually clicking on every one of them. This is unbearable.

lvirone
Enthusiast

Hello,

 

You don't need to select elements one by one manually, it's fully automatic!

 

Here is an example without asking the user to select anything :

 

Select the first RevitLinkInstance, retrieve the floors, hide the floors

                //Get a link
                var filter = new ElementClassFilter(typeof(RevitLinkInstance));
                var firstInstanceLink = (RevitLinkInstance)new FilteredElementCollector(doc).WherePasses(filter).ToElements().First();

                //Get its floors
                filter = new ElementClassFilter(typeof(Floor));
                var elemsFromRevitLinkInstance = new FilteredElementCollector(firstInstanceLink.GetLinkDocument()).WherePasses(filter).ToElements();

                //Isolate them
                var refs = elemsFromRevitLinkInstance.Select(x => new Reference(x).CreateLinkReference(firstInstanceLink)).ToList();

                uidoc.Selection.SetReferences(refs);
                uidoc.Application.PostCommand(RevitCommandId.LookupPostableCommandId(PostableCommand.HideElements));

 

rmc9WR3X
Advocate

@lvirone Thank you for the code snippet. Have you built this into an Add-in that can simply be installed?

james.levieux
Advocate

Hi fellow sufferers,

 

I want to chime in a bit here because Autodesk has provided some tiny relief that is available via that API...but even though I've written a working program that leverages this new capability, it's not enough.  This issue is STILL the biggest problem in my BIM life. 

 

The problem is this: With projects of massive scale and complexity, you will need show the same linked walls doors and windows at several different scales and for many different plan types (floor plan, RCP, power plan, lighting plan, FFE plan, etc).  If you're unfortunate enough to be an interior designer, we need to do it in our ELEVATIONS TOO!  Im forced to hide these items over and over and over in different plans and elevations.  It is unacceptably time consuming and we're frankly losing our shirt...and that other word too (without the r).

 

It is simply not enough to be able to hide items just in a single view. We need to be able to apply a selection using some vehicle similar to a view template.  I thoroughly understand AND accept that the members of such a selection set within a linked model might disappear and that I have no control over it.  I have zero problem with that, as long as the "broken" selection can be repaired to update all the necessary views.

 

If implementing this affects performance, perhaps it's a performance hit worth taking for some users... just make it a feature that can be turned on or off for those that need it.

 

Autodesk, would you please hire me to tell you what interior designers need?  It seems like you don't know.  It would improve my life to be working on a solution than suffering daily from the lack thereof.

 

James

Mbruno-JDB
Advocate

@james.levieux 

As Foodservice Consultants, we have many of the same issues as you do. 

Architects, Interior Architects, and Designers will place their own foodservice equipment in our spaces as they are doing preliminary renderings, or they want to show where they want the equipment.  Which we need to hide in all of our views.

We also have to hide their walls and put in our own where we want them to be.  Sometimes, they never fix their models.

More often than not, they are doing all of their work in one workset, even workset1.

We're trying to be more firm and requesting that if they are putting their own representations of our equipment in their models, that they put it into a workset we can turn off. We get requests from architects all the time to put things into special worksets, beyond the worksets we already use to try and make things easier for them.  We always comply.

james.levieux
Advocate

Thanks for that comment Mbruno

 

My thinking is this: 

 

First: I feel sorry for the Architect!  First they take a call from you asking them for certain walls to be on a certain separate workset...and then I call and ask for something else to be on another workset, and then they have their own internal workset needs that might be totally incompatible with ours.  I can totally understand why they may resist our requests. 

 

Second: YES!   We constantly battle with them copying our work into their model and then we have to hide even MORE crappola.  I'm going to start being firm with that too!

jeremy_tammik
Autodesk

Wouldn't it be possible to add a marker to certain elements plus define a list of views and automatically hide all the marked elements in all of the listed views? That sounds like a trivial project that anyone could easily implement. Sorry if I am completely missing the point.

james.levieux
Advocate

Hi Jeremy,

 

Thank you for your attention again on this.  I know you've spoken to the dev team about this on my behalf before.  What exactly do you mean by "add a marker" to the linked elements?  They're read only. Do you mean store a list of element IDs from the linked model inside of my model?   Then figure out a way to visually add and subtract elements from that set?  

 

James

james.levieux
Advocate

Sadly, I discovered that there's no postable command to "UnhideElements". 

 

I unhide elements as much as I hide them because, when our changes are approved by the client, the architect will finally update their layout.  When this happens I usually delete our layout elements and manually unhide the architects elements (in plans AND elevations too!!!)  so that we're are 100% coordinated.

 

It's truly WAY more work than anyone should have to do.  We interiors people have it the worst because we draw more interior elevations than any other discipline.  

 

James

 

 

lvirone
Enthusiast

Hi @james.levieux,

 

You can mimic the behavior of Revit's hide and unhide features by creating a new view, hiding elements using the PostCommand, and then deleting the view when you need to unhide them. While it's not optimal—since, as mentioned by another user, the Revit API lacks an Unhide command for references instead of ElementId—it does work.

 

Process :

I hope it helps!

Mbruno-JDB
Advocate

We have had limited success using filters to hide things.

It's easiest when the architect is using a custom family with something unique in the family name, like their initials.

However, we do have some cases, where we just cannot get a filter to work.

 

james.levieux
Advocate

Thank you Ivirone.  If I understand you correctly, it would be impossible for us to revert back to an older view in the way you have suggested. By the time the architect has updated their model, we have developed our interior plans and elevations to a point that simply deleting  our plans and elevations is simply out of the question.  We add very many tweaks to the architects model using the linework tool and many annotations which would all be lost by reverting back to an older view.

 

A working solution is necessary.

james.levieux
Advocate

Yes,  thank you Mbruno.  I often use filters when I can, but walls and doors are hard because usually you need to hide selected doors and selected walls.  So this is also, effectively, not a solution.

 

There is no getting around the fact that we need to be able to store a selection of linked elements somehow.

 

Short of that, at least provide a built-in hide and unhide tool specifically for linked models (and that can be applied to selected views as Jeremy suggested!) so that the lives of interior architects aren't quite as horrible as they are now.

 

James

Can't find what you're looking for? Ask the community or share your knowledge.

Enviar idea  

Autodesk Design & Make Report