dimensioning curtain wall mullions

dimensioning curtain wall mullions

Joris.vd.Meulen
Collaborator Collaborator
2,045 Views
4 Replies
Message 1 of 5

dimensioning curtain wall mullions

Joris.vd.Meulen
Collaborator
Collaborator

Back again. Stepping up my game.

I want to dim the vertical mullions. the width of 'm.

mullion width - panel width - mullion width.

 

Approach:

- cgmi = curtainwall.CurtainGrid.GetMullionsIds() __ a list of mullion id's

- loop that .. for each cwe in cgmi: GetElement(cwe) __ a list of GeometryElements

- loop that .. for each cwe.get_Geometry(opt) & use only the solids

- grab faces,

- grab normals,

- check parralels,

- check horizontals,

- get ref.

- dim.

 

I'm pretty sure that will work (as I did for cw outline dimensioning) but: is it the logical / fastest / cleanest way?

 

 

 

love python coding
0 Likes
2,046 Views
4 Replies
Replies (4)
Message 2 of 5

jeremytammik
Autodesk
Autodesk

Dear Joris,

Thank you for your query.

Sounds perfectly sensible to me.

Did you end up sharing your final solution for the curtain wall outline dimensioning?

 

You put in so much work in that and we discussed the research towards implementing it so intensively that I think it would be very interesting to see and possibly share on the blog, if you are willing.

 

Thank you!

I hope this helps.

Best regards,

Jeremy

 

 



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

0 Likes
Message 3 of 5

Joris.vd.Meulen
Collaborator
Collaborator

@jeremytammik,

 

Yeah, a lot of effort indeed 🙂 But I'm getting there.

 

(I think) I can share the code for outline dimensioning (Still a bit in doubt if I have convert some pieces OOTB dynamo nodes to core Python or the other way around.) So if I'm allowed: sharing would be in python (and sharing is caring).

 

love python coding
0 Likes
Message 4 of 5

Joris.vd.Meulen
Collaborator
Collaborator

Back again.

 

Something goes wrong, and I can't figure out why. I thought I had it, then I didn't. 

 

Basicly what I have as input:

  • a list of horizontal mullions 
    • (per Z-value only one mullion)

So

  • I'm looping through my curtainwalls, 
  • using CurtainGrid.GetMullionIds() with getElement(id) to 
  • retrieve a list of Revit.DB.Mullion objects
  • from there on: see below

 

 

IsParralel = ReferenceArray()
for e in cwme_h: # e = Revit.DB.Mullion object cwg = [] for obj in e.get_Geometry(opt): # obj = Revit.DB.GeometryInstance object cwg.append(obj.GetInstanceGeometry()) # obj.GetInstanceGeometry returns GeometryElement for obj in cwg: mf = faces(obj) cwfacenormals = normals(mf) # GROUP & CHECK PARALLELS+ for x in range(0, len(cwfacenormals)): for y in range(x, len(cwfacenormals)): pd = cwfacenormals[x].DotProduct(cwfacenormals[y]) # pd == -1 means parralel __ I think # VERTICAL DIMENSION if pd == -1 and cwfacenormals[x].Z == 0: IsParralel.Append(mf[x].Reference) IsParralel.Append(mf[y].Reference)

 

So my thoughtprocess is:

- get the horizontal references from each mullion and

- add those (two) to the ReferenceArray

- (which is used for creating the dimensions in the end).

 

But somewhere I'm making mistakes, approach is incorrect / strange / stupid you name it. I do like to get some help on this, it's driving me nuts not being able to solve it. 

 

 

love python coding
0 Likes
Message 5 of 5

jeremytammik
Autodesk
Autodesk

Is this the same discussion as your subsequent thread on dimensioning a mullion?

 

https://forums.autodesk.com/t5/revit-api-forum/dimension-a-mullion/m-p/8525667

 

If so, let's continue the discussion there, and not add anything further here.

 

In that case, no need to answer!

 

Thank you!

 

 



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

0 Likes