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 😞
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.
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 ??
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.
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
Hi,
wall.FindInserts can be used to find the relation between wall and embedded wall.
Revitalizer
I can nt remember if that function was available at the time. I solved it with the ElementIntersectsElementFilter option in the FilteredElementCollector.
Hi Remy,
I found this method also in a RevitAPI.chm shipped with a 2013 SDK.
Hidden gems...
Rudi
Thanks for your answer Remy, finally i got it to work through wall.FindInserts...please see my post below in the answer to Revitalizer.
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
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
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
Can't find what you're looking for? Ask the community or share your knowledge.