public void PlaceElevations(Document doc, XYZ center, ViewPlan intElevPlan) { //current scale set to 1/8" ElevationMarker marker = ElevationMarker.CreateElevationMarker(doc, FindFamilyTypeId(doc), center, 96); Parameter p = intElevPlan.get_Parameter(BuiltInParameter.VIEW_PHASE); marker.get_Parameter(BuiltInParameter.PHASE_CREATED).Set(p.AsElementId()); for (int markerindex = 0; markerindex < marker.MaximumViewCount; markerindex++) { Debug($"Writing marker at {markerindex}"); if (marker.IsAvailableIndex(markerindex)) { Debug($"Writing market to plan {intElevPlan.Name}"); ViewSection intElev = marker.CreateElevation(doc, intElevPlan.Id, markerindex); intElev.get_Parameter(BuiltInParameter.VIEW_PHASE).Set(p.AsElementId()); } } }
/// <summary> /// Places interior elevation makers and inter elevation views for the room /// </summary> /// <param name="doc">UI Document</param> /// <param name="center">coordinate where marker will be placed</param> /// <param name="intElevPlan">the plan in which the marker will be visible</param> /// <param name="selectedFamilyType">user selected view family type</param> /// <param name="scale">user selected scale for interior elevations</param> /// <returns>a list of the interior elevations created</returns> public List <ViewSection> PlaceElevations(Document doc, XYZ center, ViewPlan intElevPlan, ElementId selectedFamilyType, int scale, out ElevationMarker marker) { marker = ElevationMarker.CreateElevationMarker(doc, selectedFamilyType, center, scale); Parameter p = intElevPlan.get_Parameter(BuiltInParameter.VIEW_PHASE); marker.get_Parameter(BuiltInParameter.PHASE_CREATED).Set(p.AsElementId()); List <ViewSection> intElevList = new List <ViewSection>(); for (int markerindex = 0; markerindex < marker.MaximumViewCount; markerindex++) { if (marker.IsAvailableIndex(markerindex)) { ViewSection intElev = marker.CreateElevation(doc, intElevPlan.Id, markerindex); intElev.get_Parameter(BuiltInParameter.VIEW_PHASE).Set(p.AsElementId()); intElevList.Add(intElev); } } return(intElevList); }
public ElevationMarker PlaceMarker(Document doc, XYZ elevMarkerPosition, Wall w) { ViewPlan plan = DocumentElevPlanViews(doc, w); Parameter p = plan.get_Parameter(BuiltInParameter.VIEW_PHASE); //ElementId[] toHide = new ElementId[1]; //change scale to user input ElevationMarker marker = ElevationMarker.CreateElevationMarker(doc, FindFamilyTypeId(doc), elevMarkerPosition, 96); marker.get_Parameter(BuiltInParameter.PHASE_CREATED).Set(p.AsElementId()); //toHide[0] = marker.Id; //move this back into the if statement when code works if (marker.IsAvailableIndex(0)) { ViewSection extElev = marker.CreateElevation(doc, plan.Id, 0); extElev.get_Parameter(BuiltInParameter.VIEW_PHASE).Set(p.AsElementId()); } return(marker); }
public List <ViewSection> PlaceElevations(Document doc, XYZ center, ViewPlan intElevPlan) { //add pop up to input scale //current scale set to 1/8" ElevationMarker marker = ElevationMarker.CreateElevationMarker(doc, FindFamilyTypeId(doc), center, 96); Parameter p = intElevPlan.get_Parameter(BuiltInParameter.VIEW_PHASE); marker.get_Parameter(BuiltInParameter.PHASE_CREATED).Set(p.AsElementId()); List <ViewSection> intElevList = new List <ViewSection>(); for (int markerindex = 0; markerindex < marker.MaximumViewCount; markerindex++) { if (marker.IsAvailableIndex(markerindex)) { ViewSection intElev = marker.CreateElevation(doc, intElevPlan.Id, markerindex); intElev.get_Parameter(BuiltInParameter.VIEW_PHASE).Set(p.AsElementId()); intElevList.Add(intElev); } } return(intElevList); }
public ElevationMarker PlaceMarker(Document doc, BoundingBoxXYZ wallbb, Wall w) { XYZ wallbbmin = wallbb.Min; XYZ wallbbmax = wallbb.Max; ViewPlan plan = DocumentElevPlanViews(doc); Parameter p = plan.get_Parameter(BuiltInParameter.VIEW_PHASE); //Debug("p equals " + p.AsElementId() + " phase called " + p.AsValueString()); ////Element planPhase = doc.GetElement(p.AsElementId()); ////Debug("planPhase equals " + planPhase); //List<Room> allRooms = RoomHelpers.GetAllRooms(doc); //foreach(Room room in allRooms) //{ // //Parameter roomPhase = room.get_Parameter(BuiltInParameter.VIEW_PHASE); // //Debug("Room Phase View Phase " + room.Name + " - " + roomPhase + " (" + roomPhase.AsValueString() + ")"); // Parameter roomPhase2 = room.get_Parameter(BuiltInParameter.PHASE_CREATED); // Debug("Room Phase Phase Created " + room.Name + " - " + roomPhase2.AsElementId().ToString() + " (" + roomPhase2.AsValueString() + ")"); // Parameter roomPhase3 = room.get_Parameter(BuiltInParameter.ROOM_PHASE); // Debug("Room Phase Room Phase " + room.Name + " - " + roomPhase3.AsElementId().ToString() + " (" + roomPhase3.AsValueString() + ")"); // //ElementId roomPhase1 = room.CreatedPhaseId; // //Debug("Room Phase 1 " + room.Name + " - " + roomPhase1 + " (" + roomPhase1.ToString() + ")"); //} //Debug("Wallbb min " + wallbbmin); //Debug("Wallbb max " + wallbbmax); //Debug("Plan phase Id " + p.AsElementId().ToString()); ////Debug("Plan phase Name " + planPhase.Name); XYZ wallCenter = new XYZ( (wallbbmax.X + wallbbmin.X) / 2, (wallbbmax.Y + wallbbmin.Y) / 2, wallbbmin.Z ); List <Room> phasedRooms = RoomHelpers.GetPhasedRooms(doc, p.AsElementId()); //Debug("Phase of wall " + w.CreatedPhaseId.ToString()); //Debug("Phase of wall name " + w.get_Parameter(BuiltInParameter.PHASE_CREATED).AsValueString()); XYZ wallCenterYTranslatedPositive = new XYZ( wallCenter.X, wallCenter.Y + 10, wallCenter.Z ); XYZ wallCenterYTranslatedNegative = new XYZ( wallCenter.X, wallCenter.Y - 10, wallCenter.Z ); XYZ wallCenterXTranslatedPositive = new XYZ( wallCenter.X + 10, wallCenter.Y, wallCenter.Z ); XYZ wallCenterXTranslatedNegative = new XYZ( wallCenter.X - 10, wallCenter.Y, wallCenter.Z ); //Debug("wall center " + wallCenter); //Debug("wallCenterYTranslatedPositive " + wallCenterYTranslatedPositive); //Debug("wallCenterYTranslatedNegative " + wallCenterYTranslatedNegative); //Debug("wallCenterXTranslatedPositive " + wallCenterXTranslatedPositive); //Debug("wallCenterXTranslatedNegative " + wallCenterXTranslatedNegative); XYZ markerLocation = wallCenter; Debug("markerLocation before the loops " + markerLocation); Debug("length of list phasedrooms " + phasedRooms.Count); if ((wallbbmax.X - wallbbmin.X) > (wallbbmax.Y - wallbbmin.Y)) { foreach (Room r in phasedRooms) { if (r.IsPointInRoom(wallCenterYTranslatedPositive)) { Debug("room name " + r.Name); Debug("is Y positive in room " + r.IsPointInRoom(wallCenterYTranslatedPositive)); markerLocation = wallCenterYTranslatedNegative; break; } else if (r.IsPointInRoom(wallCenterYTranslatedNegative)) { Debug("room name " + r.Name); Debug("is Y negative in room " + r.IsPointInRoom(wallCenterYTranslatedNegative)); markerLocation = wallCenterYTranslatedPositive; break; } } Debug("is Y check done"); } else { foreach (Room r in phasedRooms) { if (r.IsPointInRoom(wallCenterXTranslatedPositive)) { Debug("room name " + r.Name); Debug("is X positive in room " + r.IsPointInRoom(wallCenterXTranslatedPositive)); markerLocation = wallCenterXTranslatedNegative; break; } else if (r.IsPointInRoom(wallCenterXTranslatedNegative)) { Debug("room name " + r.Name); Debug("is X negative in room " + r.IsPointInRoom(wallCenterXTranslatedNegative)); markerLocation = wallCenterXTranslatedPositive; break; } } Debug("is X check done"); } Debug("selected marker location after loops " + markerLocation); //change scale to user input ElevationMarker marker = ElevationMarker.CreateElevationMarker(doc, FindFamilyTypeId(doc), markerLocation, 96); marker.get_Parameter(BuiltInParameter.PHASE_CREATED).Set(p.AsElementId()); if (marker.IsAvailableIndex(0)) { ViewSection extElev = marker.CreateElevation(doc, plan.Id, 0); extElev.get_Parameter(BuiltInParameter.VIEW_PHASE).Set(p.AsElementId()); } return(marker); }