Revit API Forum
Welcome to Autodesk’s Revit API Forums. Share your knowledge, ask questions, and explore popular Revit API topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Non-Hosted Family Hosted to a Floor

19 REPLIES 19
Reply
Message 1 of 20
atiefenbach
1609 Views, 19 Replies

Non-Hosted Family Hosted to a Floor

Since, I think, Revit 2013 we've been having issues with Families being hosted to Floors, even though the Family is NOT hosted.  It will host to the Level when the Family is placed not over a Floor.  If I make the Family "Work Plane-Based" then the user has to select "Place on Work Plane", because the default is to place "Work Plane-Based" Families "Place on Vertical Face", even though the Family is set to "Always vertical".  This sounds like a BUG to me, but it hasn't been fixed in YEARS, so I want to have a solution for my users.

 

So here's the issue with trying to create an API workaround:

The Revit properties window shows the FamilyInstance with:

Level == 1ST LEVEL

Host == Floor : Concrete-4

 

However, the FamilyInstance.Host == Null && FamilyInstance.HostFace == Null && FamilyInstance.HostParameter == Null, BUT the FamilyInstance.get_Parameter(BuiltInParameter.INSTANCE_FREE_HOST_PARAM).AsString() == "Floor : Concrete-4", which is Read-Only.  I can use this Parameter to determine the "Host" so I know which FamilyInstance will need to be fixed.

 

How do I assign the Level as the new "Host" to the FamilyInstance?

Anthony Tiefenbach
BIM Manager
HuntonBrady Architects
19 REPLIES 19
Message 2 of 20

Hello,

 

I need a little bit of clarification. It seems to me that you are saying that the original problem is that Family Instances that should not be hosted in architectural elements are being forcibly hosted in Architectural elements like floors. Am I correct? I suppose you are placing these family instances through the UI?

 

Thanks

Gopinath

Message 3 of 20

Yes, your assumption is correct.  When I place a family via the UI, it automatically hosts to the floor, if a floor is in the area I'm placing the component at, which is about 95% of the time.  The problem is, this doesn't allow me to copy that FamilyInstance to another level because the copied FamilyInstance is on the correct level, but is still hosted to the original floor (throwing a duplicate elements in the same place warning).  When we have a multi-story building, this is a HUGE pain in the butt.

 

To correct it, I'd like to have the component correct itself to the Level instead of the Floor, but I don't see any API that allows me to change the host, when it's not a hosted family.  I am able to fix this by just creating a new FamilyInstance in the same place, with the same rotation, coping the parameters to the new FamilyInstance, and then deleting the original FamilyInstance.  However, I just don't want to go that route if I can just correct the host.

 

Thanks!

Anthony Tiefenbach
BIM Manager
HuntonBrady Architects
Message 4 of 20

Hello,

 

Sincere apologies for the delay in getting back to you. I am consulting engg about this. I will get back to you as soon as I have something.

 

Cheers

Gopinath

Message 5 of 20

Hello,

 

Thanks for your patience.

 

One of my Autodesk colleagues suggested this: "I believe they can place the instance away from the building and it will host to the level. They can then move the instance to the spot they want".

 

Have you already tried this?

 

Thanks

Gopinath

Message 6 of 20

Yes.  I can add the component out in space away from the floor and have the components host to the Level.  I know this works, and this is our workaround now, for "fixing" improperly hosted components.  However, this is clearly a workaround and I'm trying to find a better solution.  Which is why I thought, using a DMU, or other API, I could change the Host of the component.  Using a DMU won't work because the Transaction doesn't close until after the all components are placed when placing them.  So I just created a button that will take the elements a user has selected, place duplicate instances in the same place (which won't have a Host) copy the parameters and then delete the original selection.

Anthony Tiefenbach
BIM Manager
HuntonBrady Architects
Message 7 of 20

Hello,

 

Thanks for the feedback.

 

Like I mentioned in my private response to you, I logged a change request for API to be able to change the host for copied instances. Please feel free to check back with us from time to time on the status of the request.

 

Best Regards

Gopinath

Message 8 of 20
basionyecg
in reply to: atiefenbach

 

Hello,

 

I Know this is an old topic but I couldn't find any resent one.

 

Iam currently facing the same problem , Is there any update or change brought with API 2016?

 

Regards,

Basiony

Message 9 of 20
atiefenbach
in reply to: atiefenbach

No change as of Revit 2016 R2 with update 2.
Anthony Tiefenbach
BIM Manager
HuntonBrady Architects
Message 10 of 20
jeremytammik
in reply to: atiefenbach

Dear Atiefenbach,

 

Do you know the number of the development issue that Gopi submitted for this?

 

It is not mentioned in his answer above.

 

I could check its status and prompt the development team for some news.

 

Thank you!

 

Cheers,

 

Jeremy



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

Message 11 of 20
atiefenbach
in reply to: atiefenbach

REVIT-42505
Anthony Tiefenbach
BIM Manager
HuntonBrady Architects
Message 12 of 20
jeremytammik
in reply to: atiefenbach

Dear Atiefenbach,

 

Thank you.

 

The number you gave has changed, because the issue was converted from a change request to a wish list item.

 

Please make a note of the new number for future reference: CF-1521 [Unable to re-host a family instance when copied through the API].

 

I linked it to the more general wish list item CF-3268 [API wish: set level of element], asked the development team for an update on these, and will let when I hear back from them.


Cheers,

Jeremy



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

Message 13 of 20

Hi,

 

Just to say we have come across the same issue using the API, and it has taken a while to find out that API placed families get hosted to floors whereas others don't.

 

Look forward to getting this fixed.

Message 14 of 20

Dear Andrewharle8552,

 

Could you provide a reproducible case to prove this behaviour?

 

http://thebuildingcoder.typepad.com/blog/about-the-author.html#1b

 

Then I could submit that as an issue for the development team to explore.

 

It could be classified as a change request and not as a wish list item like the issues mentioned above.

 

Thank you!

 

Cheers,

 

Jeremy



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

Message 15 of 20

Hi,

 

I can send you the .DLL file which basically does a keyword search of loaded families and types and allows the user to pick and place a family instance in the current window.

 

Would prefer to email rather than post here if that's OK.

Message 16 of 20

The DLL on its own is not much use.

 

Everything we need to reproduce and analyse the issue is listed here:

 

http://thebuildingcoder.typepad.com/blog/about-the-author.html#1b

 

Thank you!

 

Cheers,

 

Jeremy



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

Message 17 of 20
DavidsDesk
in reply to: jeremytammik

For the time being, placing floors on secondary design options all the time forces everyone to place these families on a workplane.  Openings and families that do actually cut the floors are placed into the option that houses the floors.  The visibility of the secondary design option would have to be managed in all of your views and view templates.  Floors tend to get deleted and moved around and it shouldn't impact the established elevation of these placed families without warning you.

Message 18 of 20
DavidsDesk
in reply to: DavidsDesk

Please just make Place on Work Plane the default Placement option when a Family is Work Plane-Based.place on face2.jpg

Message 19 of 20
jelwell3QWFZ
in reply to: jeremytammik

I am still having this issue as well. In Revit 2017 even when placing pipe fittings in Revit, not with the API, if you are over a floor it hosts the NON-HOSTED element to the floor (ex. Conc - 6"). This causes copying assemblies or fittings connected to pipe to not work. It will throw the fittings off of the assembly but still think it's connected. It's impossible to copy and it seems as though the Host parameter is non-editable and read only. 

 

Please advise. 

 

Thanks,  

Message 20 of 20
Andy_Grout
in reply to: jelwell3QWFZ

It's mind-boggling that this issue hasn't been fixed after so many years. The work- around I use is to have a plan view and section view open at the same time. Select the element in plan, click re-host element (pick new), then switch over to section view and click on the level marker.

 

This will host the element onto a level rather than a floor and allows you to copy-paste to other floors without issue.

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

Post to forums  

Autodesk DevCon in Munich May 28-29th


Rail Community