AnsweredAssumed Answered

Assigning floor use when using an envelope

Question asked by pltsltesri on Jan 3, 2014
Latest reply on Jan 20, 2014 by MBuehler-esristaff
I'm having a problem getting a use assigned to the individual floors of building creted using an envelope. I'm able to do it when the building is created using extrusionbut with the envelope the floor index does not appear to work. The report does indicate the CurrentFloorIndex is increased but the floors are not displayed properly concernig their use. Below is some or code I used, this code is simplified so we're only dealing with commercial and residential floors but in reality I would, want to expand this to include mixed and office floors.

Building-->  setupProjection(0, scope.xz, 500, 500)     envelope(MaxHeight, FrontBaseHgt, FrontAngle, RearBaseheight, RearAngle, SideBaseheight, SideAngle )     #comp(f) {top : Top }  BuildingVolume3D   BuildingVolume3D -->   # the 3d volume will not be split into smaller 3d volumes ! 1 ground floor volume will be created.   alignScopeToAxes(y)   split(y) {GroundFloorHeight : Volume("GF") | ~1 : AllUpperFloors}   AllUpperFloors -->  alignScopeToAxes(y)  split(y) {~UpperFloorHeight : Volume("UF")}*  NIL  Volume(volumeType) -->  case volumeType == "GF" :   case NumFlrComm > 0:    case LOD == 1:     comp(f){side: GFloorSide | bottom: FloorBottom}     set(material.opacity,0.8)     report("1 Ground Flr Area", geometry.area(bottom))     report("1 Ground Flr Revenue", (geometry.area(bottom) * GFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * GFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting    else:     comp(f){side: GFloorSideS | bottom: FloorBottom}     report("1 Ground Flr Area", geometry.area(bottom))     report("1 Ground Flr Revenue", (geometry.area(bottom) * GFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * GFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting   else:    case LOD == 1:     comp(f){side: FloorSideRes | bottom: FloorBottom | top : Top}     set(material.opacity,0.8)     report("2 Res Flr Area", geometry.area(bottom))     report("2 Res Flr Revenue", (geometry.area(bottom) * UFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * UFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting    else:     comp(f){side: FloorSideSRes | bottom: FloorBottom | top : Top}     report("2 Upper Flr Area", geometry.area(bottom))     report("2 Upper Flr Revenue", (geometry.area(bottom) * UFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * UFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting  else :   case currentFloorIndex <= NumFlrComm:    case LOD == 1:     comp(f){side: FloorSideC | bottom: FloorBottom | top : Top}     set(material.opacity,0.8)     report("2 Comm Flr Area", geometry.area(bottom))     report("2 Comm Flr Revenue", (geometry.area(bottom) * UFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * UFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting    else:     comp(f){side: FloorSideSC | bottom: FloorBottom | top : Top}     report("2 Comm Flr Area", geometry.area(bottom))     report("2 Comm Flr Revenue", (geometry.area(bottom) * UFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * UFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting   else:    case LOD == 1:     comp(f){side: FloorSideRes | bottom: FloorBottom | top : Top}     set(material.opacity,0.8)     report("2 Res Flr Area", geometry.area(bottom))     report("2 Res Flr Revenue", (geometry.area(bottom) * UFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * UFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting    else:     comp(f){side: FloorSideSRes | bottom: FloorBottom | top : Top}     report("2 Upper Flr Area", geometry.area(bottom))     report("2 Upper Flr Revenue", (geometry.area(bottom) * UFRate))     set(TotRevenue, (TotRevenue + geometry.area(bottom) * UFRate))     report("3 Total Revenue", TotRevenue)     set (currentFloorIndex, currentFloorIndex + 1)     report("NUMBER OF FLRS", currentFloorIndex)     MassReporting


The building this creates is always just symbolozed as commercial, no residential at all:

[ATTACH=CONFIG]30228[/ATTACH]

The only time I get something other than commercial (red) is if I set the NumFlrComm attribute to 0 in the Inspector. It appears that "set (currentFloorIndex, currentFloorIndex + 1)" is not effecting the "Volume(volumeType) -->" rule, although the number of floors is reported correctly in the report.
Any one have any idea how I can rearrange this so the currentFloorIndex is used correctly.

Attachments

Outcomes