Curtain wall host

Curtain wall host

Anonymous
Not applicable
3,677 Views
14 Replies
Message 1 of 15

Curtain wall host

Anonymous
Not applicable

hello Reviteers,

 

When I ask a window what it's host is, I can find it because it has a instance builtinparameter HOST_ID_Param.

 

Now I want to know in what Wall a curtain wall is inserterd. Unfortenately a curtain wal doesn't have this builtinparameter HOST_ID_Param..

 

So my question is, how can I find out in which wall a curtain wal is placed. I can't find the parameter with Snoop or the Bipchecker 😞

 

 

3,678 Views
14 Replies
Replies (14)
Message 2 of 15

Anonymous
Not applicable

You dont place curtain walls on a wall type, it doesnt have a HOST_ID_param, because it is a host.  When placing a wall type you select to place a curtain system instead, on the type drop down on your properties tab.  Think of a curtain wall as just a wall, they're non-editable families that host objects.  You can create windows that are specifically hosted to curtain walls.  If you're trying to create a partial curtain system in a wall you'll still have to start by creating a curtain wall first, add a curtain grid sectioning out the part of the wall you want as windows. Then highlight over the panels on that grid system that you'd like shown as a wall not window, press the tab key to select that specific panel, then on your properties tab select a wall type you'd like to apply to that panel.  (view attached image)  Let me know if that answered your question

 

Something to note:

Once you turn a panel from a curtain system into a wall type, you wont be able to use the tab key and select it as a panel again.

0 Likes
Message 3 of 15

Anonymous
Not applicable

Okay, thanks for clearing this up. But let me rephrase my question. I havea wall and place a curtain wall in it. How can I get the wall it is in? How can I get the ID of the wall surrounding the curtain wall ?

 

Ultemately I want to be able to replace the curtain wall by a window, and therefor I need the hostID.

 

doc.Create.NewFamilyInstance(location, symbol, host, host.Level, _non_rst);

 

Or am I using the wrong code and is there another way to place a window without having to know it's host ??

0 Likes
Message 4 of 15

Ning_Zhou
Advocate
Advocate
perhaps use good old delete / rollback trick, i mean deleting that "host" wall to see if curtain wall is in the list of deleted ids
0 Likes
Message 5 of 15

Anonymous
Not applicable
That's a good idea, except it doesn't work in this case. When deleting the 'surrounding" wall, the curtain wall isn't deleted and still there 😞
0 Likes
Message 6 of 15

Joe.Ye
Alumni
Alumni

 

Hi Remy,

 

Since deleting the "host" wall doesn't affect the curtain wall, that means they don't have logical relationship. The curtain just looks like in the "host" wall. 

In this situation, you can use the geometry and their position relationship to judge if the curtain wall is in the wall. for example get the curtain wall's bounding box, and also the "host" wall's bounding box. Then check if the curtain wall's bounding box is in the host wall's bounding box.



Joe Ye
Contractor
Developer Technical Services
Autodesk Developer Network
0 Likes
Message 7 of 15

Anonymous
Not applicable

Hello Remy, i know this is a very old post but please i would like to ask you how do you finally solved this specifically problem as i'm facing exactly the same.

 

Thanks in advance, 

Armel

0 Likes
Message 8 of 15

Revitalizer
Advisor
Advisor

Hi,

 

wall.FindInserts can be used to find the relation between wall and embedded wall.

 

Revitalizer




Rudolf Honke
Software Developer
Mensch und Maschine





Message 9 of 15

Anonymous
Not applicable
Thanks for your answer!!!...just last night I found that this (FindInserts) could be a good option and now you confirm it!..I’m new to revit coding but I feel very enthusiast, let’s see if I can get a good solution soon with your advise.

Thanks again!
0 Likes
Message 10 of 15

Anonymous
Not applicable

I can nt remember if that function was available at the time. I solved it with the ElementIntersectsElementFilter option in the FilteredElementCollector.

Message 11 of 15

Revitalizer
Advisor
Advisor

Hi Remy,

 

I found this method also in a RevitAPI.chm shipped with a 2013 SDK.

Hidden gems...

 

Rudi




Rudolf Honke
Software Developer
Mensch und Maschine





Message 12 of 15

Anonymous
Not applicable

Thanks for your answer Remy, finally i got it to work through wall.FindInserts...please see my post below in the answer to Revitalizer.

0 Likes
Message 13 of 15

Anonymous
Not applicable

Hi Revitalizer, well as you can read in my answer to Remy, I finally "partially" obtain what i was looking for with wall.FindInserts as you suggest me. Now i have another "little" problem to solve to make it totally functional, and it is relative to coordinates when creating new openings on walls. As they are gonna be created in different walls randomly located in the 3D space, and I took the coordinates I need for their creation from the Curve of CurtainWalls "inserted" in "host" walls, it seems that when passing these coordinates they get affected by the project "origin" and then as a result i'm getting just randomly projections of those "absolute" coordinates on the different walls surfaces. As i'm coming from CAD my experience led me to think that i have like an "UCS issue" to solve for each case when creating new openings...Or maybe I need to "normalize" or in some way "make relative to the host wall" the coordinates i'm trying to pass as parameters for new openings. After a little research i'found that XYZ class have a Normal or Normalize parameter/method that could be used...well, that's the point right now, please if you have any idea respect to this let me know and, again, thank you very much guys, your help its been very useful for me.

 

Armel 

0 Likes
Message 14 of 15

Revitalizer
Advisor
Advisor

Hi @Anonymous,

 

I would suggest to open a new thread, so your problem will get more attention.

It is related to this thread's topic but in fact, I consider it as a different question.

 

What about a picture describing the UCS issue?

 

Revitalizer




Rudolf Honke
Software Developer
Mensch und Maschine





Message 15 of 15

Anonymous
Not applicable

Understand, you are right, I will do it. But anyway I would like to finish this thread, just for clarifying, by saying that at least in this case there was no such "UCS issue" as i though before, it was only a incorrect use in getting element's bounding box (window) coordinates for posterior use. I'm sorry if could create some confusion.

 

Thanks,

 

Armel

0 Likes