public static CovertFromAPI ( DisplayUnitType to, double value ) : double | ||
to | DisplayUnitType | DisplayUnitType indicates unit of target value |
value | double | value get from RevitAPI |
리턴 | double |
/// <summary> /// Used to a new item in the dataGridView control. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void addButton_Click(object sender, EventArgs e) { System.String newLevelName; double newLevelElevation; //If it exists some Levels on Revit, //the added item's Name and Elevation uses last a Level's Name and Elevation. //Otherwise it uses a default data. if (bindingSource1.Count > 0) { bindingSource1.MoveLast(); LevelsDataSource lastItem = bindingSource1.Current as LevelsDataSource; System.String lastLevelName = lastItem.Name; double lastLevelElevation = lastItem.Elevation; newLevelName = lastLevelName + "'"; newLevelElevation = lastLevelElevation + Unit.CovertFromAPI(m_objectReference.UnitType, 10); } else { newLevelName = "Level" + " " + "1"; newLevelElevation = 0; } LevelsDataSource newLevel = new LevelsDataSource(); newLevel.Name = newLevelName; newLevel.Elevation = newLevelElevation; bindingSource1.Add(newLevel); }
/// <summary> /// Implement this method as an external command for Revit. /// </summary> /// <param name="revit">An object that is passed to the external application /// which contains data related to the command, /// such as the application object and active view.</param> /// <param name="message">A message that can be set by the external application /// which will be displayed if a failure or cancellation is returned by /// the external command.</param> /// <param name="elements">A set of elements to which the external application /// can add elements that are to be highlighted in case of failure or cancellation.</param> /// <returns>Return the status of the external command. /// A result of Succeeded means that the API external method functioned as expected. /// Cancelled can be used to signify that the user cancelled the external operation /// at some point. Failure should be returned if the application is unable to proceed with /// the operation.</returns> public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit, ref String message, Autodesk.Revit.DB.ElementSet elements) { m_revit = revit; UnitType = m_revit.Application.ActiveUIDocument.Document.GetUnits().GetFormatOptions(Autodesk.Revit.DB.UnitType.UT_Length).DisplayUnits; Transaction documentTransaction = new Transaction(revit.Application.ActiveUIDocument.Document, "Document"); documentTransaction.Start(); try { //Get every level by iterating through all elements systemLevelsDatum = new List <LevelsDataSource>(); FilteredElementCollector collector = new FilteredElementCollector(m_revit.Application.ActiveUIDocument.Document); ICollection <Element> collection = collector.OfClass(typeof(Level)).ToElements(); foreach (Element element in collection) { Level systemLevel = element as Level; LevelsDataSource levelsDataSourceRow = new LevelsDataSource(); levelsDataSourceRow.LevelIDValue = systemLevel.Id.IntegerValue; levelsDataSourceRow.Name = systemLevel.Name; Parameter elevationPara = systemLevel.get_Parameter(BuiltInParameter.LEVEL_ELEV); double temValue = Unit.CovertFromAPI(UnitType, elevationPara.AsDouble()); double temValue2 = double.Parse(temValue.ToString("#.0")); levelsDataSourceRow.Elevation = temValue2; systemLevelsDatum.Add(levelsDataSourceRow); } using (LevelsForm displayForm = new LevelsForm(this)) { displayForm.ShowDialog(); } } catch (Exception ex) { message = ex.Message; documentTransaction.RollBack(); return(Autodesk.Revit.UI.Result.Failed); } documentTransaction.Commit(); return(Autodesk.Revit.UI.Result.Succeeded); }