Select to view content in your preferred language

Balcony design for corner wall

796
1
06-18-2022 08:51 PM
zizicocata
Emerging Contributor

Hi

I am thinking balcony modeling

But i dont know how can i do this style

Hiw Can i start this style

Sorry my poor english

Tags (1)
0 Kudos
1 Reply
CherylLau
Esri Regular Contributor

This post discusses corner balconies that go inwards into the building:
https://community.esri.com/t5/arcgis-cityengine-questions/balcony-design-for-the-corner-of-the-build...

 

Corner balconies that extrude outwards from the building mass are slightly different.  I tried to find a solution based on the inner corner balcony discussion from the post above, but the solution I found is a little different.  I made the side railings and the outer railings separately.  This code works for rectangular and non-rectangular quads, but it does not work for non-quads because it assumes that the footprint has 4 vertices.

attr Height = 21
attr Floor_Height = 3
attr Balcony_Width = 10
attr Balcony_Depth = 3
attr Balcony_Slab_Thickness = 0.3
attr Balcony_Railing_Height = 1
attr Balcony_Railing_Depth = 0.1

const m = 2		// multiply by some factor to make sure balcony is long enough for acute angled corners


Lot -->
	extrude(Height)
	comp(f) { side: Facade(comp.index) | all: X. }
	
Facade(facadeInd) -->
	split(y) { Floor_Height: Floor(facadeInd, split.index) }*
	
Floor(facadeInd, floorInd) -->
	case floorInd%2==facadeInd%2:
		split(x) { Balcony_Width-Balcony_Depth: BalconyTile(true) | ~1: X. }
	else:
		split(x) { ~1: X. | Balcony_Width-Balcony_Depth: BalconyTile(false) }
		
BalconyTile(isFirst) -->
	Wall.
	OuterBalconyRailings(isFirst)
	SideBalconyRailings(isFirst)
	s(scope.sx+m*Balcony_Depth, Balcony_Slab_Thickness, Balcony_Depth)
	t(-m*Balcony_Depth*float(isFirst), 0, 0)
	primitiveCube
	BalconySlab.
	
OuterBalconyRailings(isFirst) -->
	s(scope.sx+m*Balcony_Depth, Balcony_Railing_Height, Balcony_Railing_Depth)
	t(-m*Balcony_Depth*float(isFirst), Balcony_Slab_Thickness, Balcony_Depth-Balcony_Railing_Depth)
	primitiveCube
	
SideBalconyRailings(isFirst) -->
	s('1, Balcony_Railing_Height, 0)
	t(0, Balcony_Slab_Thickness, 0)
	split(x) { ~float(isFirst): NIL | Balcony_Railing_Depth: extrude(Balcony_Depth-Balcony_Railing_Depth) X. }

 

corner_balconies.png

0 Kudos