public void fuckFace(Autodesk.Revit.UI.UIApplication revit) { m_Revit = revit; // Create data generator m_Generator = new DataGenerator(m_Revit.Application, m_Revit.ActiveUIDocument.Document, m_Revit.ActiveUIDocument.Document.ActiveView); FolderBrowserDialog folderDialog = new FolderBrowserDialog(); // Set file name of exported stl string fileName; if (folderDialog.ShowDialog() == DialogResult.OK) { fileName = folderDialog.SelectedPath + "\\buildingPrint.stl"; } else { return; } // Set binary save format SaveFormat saveFormat = SaveFormat.Binary; // Set export range ElementsExportRange exportRange = ElementsExportRange.OnlyVisibleOnes; // Include linked cbIncludeLinked = true; // Export in color cbExportColor = false; // Export in shared coordinates cbExportSharedCoordinates = false; // Set dup to 2 for millimeters dup = DisplayUnitType.DUT_MILLIMETERS; // scan for categories and add each of them to selectedCategories m_CategoryList = m_Generator.ScanCategories(true); List <Category> selectedCategories = m_CategoryList.Values.ToList(); // create settings object to save setting information BIM.STLExport.Settings aSetting = new BIM.STLExport.Settings(saveFormat, exportRange, cbIncludeLinked, cbExportColor, cbExportSharedCoordinates, selectedCategories, dup); // save Revit document's triangular data in a temporary file m_Generator = new DataGenerator(m_Revit.Application, m_Revit.ActiveUIDocument.Document, m_Revit.ActiveUIDocument.Document.ActiveView); // Save STL file DataGenerator.GeneratorStatus succeed = m_Generator.SaveSTLFile(fileName, aSetting); }
/// <summary> /// Constructor. /// </summary> /// <param name="revit">The revit application.</param> public STLExportForm(Autodesk.Revit.UI.UIApplication revit) { InitializeComponent(); m_Revit = revit; // get new data generator m_Generator = new DataGenerator(m_Revit.Application, m_Revit.ActiveUIDocument.Document, m_Revit.ActiveUIDocument.Document.ActiveView); // scan for categories to populate category list m_CategoryList = m_Generator.ScanCategories(true); foreach (Category category in m_CategoryList.Values) { TreeNode treeNode = GetChildNode(category,m_Revit.ActiveUIDocument.Document.ActiveView); if (treeNode != null) tvCategories.Nodes.Add(treeNode); } string unitName = "Use Internal: Feet"; m_DisplayUnits.Add(unitName, DisplayUnitType.DUT_UNDEFINED); int selectedIndex = comboBox_DUT.Items.Add(unitName); if (m_SelectedDUT == DisplayUnitType.DUT_UNDEFINED) comboBox_DUT.SelectedIndex = selectedIndex; Units currentUnits = m_Revit.ActiveUIDocument.Document.GetUnits(); DisplayUnitType currentDut = currentUnits.GetFormatOptions(UnitType.UT_Length).DisplayUnits; unitName = "Use Current: " + LabelUtils.GetLabelFor(currentDut); m_DisplayUnits.Add(unitName, currentDut); selectedIndex = comboBox_DUT.Items.Add(unitName); if (m_SelectedDUT == currentDut) comboBox_DUT.SelectedIndex = selectedIndex; foreach (DisplayUnitType dut in UnitUtils.GetValidDisplayUnits(UnitType.UT_Length)) { if (currentDut == dut) continue; unitName = LabelUtils.GetLabelFor(dut); m_DisplayUnits.Add(unitName, dut); selectedIndex = comboBox_DUT.Items.Add(unitName); if (m_SelectedDUT == dut) comboBox_DUT.SelectedIndex = selectedIndex; } // initialize the UI differently for Families if (revit.ActiveUIDocument.Document.IsFamilyDocument) { cbIncludeLinked.Enabled = false; tvCategories.Enabled = false; btnCheckAll.Enabled = false; btnCheckNone.Enabled = false; } }
/// <summary> /// Save button click event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The event args.</param> private void btnSave_Click(object sender, EventArgs e) { string fileName = STLDialogManager.SaveDialog(); if (!string.IsNullOrEmpty(fileName)) { SaveFormat saveFormat; if (rbBinary.Checked) { saveFormat = SaveFormat.Binary; } else { saveFormat = SaveFormat.ASCII; } ElementsExportRange exportRange; exportRange = ElementsExportRange.OnlyVisibleOnes; // get selected categories from the category list List<Category> selectedCategories = new List<Category>(); // only for projects if (m_Revit.ActiveUIDocument.Document.IsFamilyDocument == false) { foreach (TreeNode treeNode in tvCategories.Nodes) { AddSelectedTreeNode(treeNode, selectedCategories); } } DisplayUnitType dup = m_DisplayUnits[comboBox_DUT.Text]; m_SelectedDUT = dup; // create settings object to save setting information Settings aSetting = new Settings(saveFormat, exportRange, cbIncludeLinked.Checked,cbExportColor.Checked,cbExportSharedCoordinates.Checked, selectedCategories, dup); // save Revit document's triangular data in a temporary file m_Generator = new DataGenerator(m_Revit.Application, m_Revit.ActiveUIDocument.Document, m_Revit.ActiveUIDocument.Document.ActiveView); DataGenerator.GeneratorStatus succeed = m_Generator.SaveSTLFile(fileName, aSetting); if (succeed == DataGenerator.GeneratorStatus.FAILURE) { this.DialogResult = DialogResult.Cancel; MessageBox.Show(STLExportResource.ERR_SAVE_FILE_FAILED, STLExportResource.MESSAGE_BOX_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else if (succeed == DataGenerator.GeneratorStatus.CANCEL) { this.DialogResult = DialogResult.Cancel; MessageBox.Show(STLExportResource.CANCEL_FILE_NOT_SAVED, STLExportResource.MESSAGE_BOX_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } this.DialogResult = DialogResult.OK; this.Close(); } else { MessageBox.Show(STLExportResource.CANCEL_FILE_NOT_SAVED, STLExportResource.MESSAGE_BOX_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
/// <summary> /// Constructor. /// </summary> /// <param name="revit">The revit application.</param> public STLExportForm(Autodesk.Revit.UI.UIApplication revit) { InitializeComponent(); m_Revit = revit; // get new data generator m_Generator = new DataGenerator(m_Revit.Application, m_Revit.ActiveUIDocument.Document, m_Revit.ActiveUIDocument.Document.ActiveView); // scan for categories to populate category list m_CategoryList = m_Generator.ScanCategories(true); foreach (Category category in m_CategoryList.Values) { TreeNode treeNode = GetChildNode(category, m_Revit.ActiveUIDocument.Document.ActiveView); if (treeNode != null) { tvCategories.Nodes.Add(treeNode); } } string unitName = "Use Internal: Feet"; m_DisplayUnits.Add(unitName, DisplayUnitType.DUT_UNDEFINED); int selectedIndex = comboBox_DUT.Items.Add(unitName); if (m_SelectedDUT == DisplayUnitType.DUT_UNDEFINED) { comboBox_DUT.SelectedIndex = selectedIndex; } Units currentUnits = m_Revit.ActiveUIDocument.Document.GetUnits(); DisplayUnitType currentDut = currentUnits.GetFormatOptions(UnitType.UT_Length).DisplayUnits; unitName = "Use Current: " + LabelUtils.GetLabelFor(currentDut); m_DisplayUnits.Add(unitName, currentDut); selectedIndex = comboBox_DUT.Items.Add(unitName); if (m_SelectedDUT == currentDut) { comboBox_DUT.SelectedIndex = selectedIndex; } foreach (DisplayUnitType dut in UnitUtils.GetValidDisplayUnits(UnitType.UT_Length)) { if (currentDut == dut) { continue; } unitName = LabelUtils.GetLabelFor(dut); m_DisplayUnits.Add(unitName, dut); selectedIndex = comboBox_DUT.Items.Add(unitName); if (m_SelectedDUT == dut) { comboBox_DUT.SelectedIndex = selectedIndex; } } // initialize the UI differently for Families if (revit.ActiveUIDocument.Document.IsFamilyDocument) { cbIncludeLinked.Enabled = false; tvCategories.Enabled = false; btnCheckAll.Enabled = false; btnCheckNone.Enabled = false; } }
/// <summary> /// Save button click event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The event args.</param> private void btnSave_Click(object sender, EventArgs e) { string fileName = STLDialogManager.SaveDialog(); if (!string.IsNullOrEmpty(fileName)) { SaveFormat saveFormat; if (rbBinary.Checked) { saveFormat = SaveFormat.Binary; } else { saveFormat = SaveFormat.ASCII; } ElementsExportRange exportRange; exportRange = ElementsExportRange.OnlyVisibleOnes; // get selected categories from the category list List <Category> selectedCategories = new List <Category>(); // only for projects if (m_Revit.ActiveUIDocument.Document.IsFamilyDocument == false) { foreach (TreeNode treeNode in tvCategories.Nodes) { AddSelectedTreeNode(treeNode, selectedCategories); } } DisplayUnitType dup = m_DisplayUnits[comboBox_DUT.Text]; m_SelectedDUT = dup; // create settings object to save setting information Settings aSetting = new Settings(saveFormat, exportRange, cbIncludeLinked.Checked, cbExportColor.Checked, cbExportSharedCoordinates.Checked, selectedCategories, dup); // save Revit document's triangular data in a temporary file m_Generator = new DataGenerator(m_Revit.Application, m_Revit.ActiveUIDocument.Document, m_Revit.ActiveUIDocument.Document.ActiveView); DataGenerator.GeneratorStatus succeed = m_Generator.SaveSTLFile(fileName, aSetting); if (succeed == DataGenerator.GeneratorStatus.FAILURE) { this.DialogResult = DialogResult.Cancel; MessageBox.Show(STLExportResource.ERR_SAVE_FILE_FAILED, STLExportResource.MESSAGE_BOX_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else if (succeed == DataGenerator.GeneratorStatus.CANCEL) { this.DialogResult = DialogResult.Cancel; MessageBox.Show(STLExportResource.CANCEL_FILE_NOT_SAVED, STLExportResource.MESSAGE_BOX_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } this.DialogResult = DialogResult.OK; this.Close(); } else { MessageBox.Show(STLExportResource.CANCEL_FILE_NOT_SAVED, STLExportResource.MESSAGE_BOX_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }