//bool WriteData(string str_FileName) public void Test_WriteData() { bool bRetValue; Outwriter target = new Outwriter(); String strPartName = String.Empty; uint uFace = 0; float[] Vert = { 0.1f }; float[] Nor = { 0.1f }; float[] TC = { 0.2f }; uint[] Ind = { 3 }; uint[] FeaC = { 4 }; String ComName = "Test_addComponent 1"; double[] trans = { 0.1 }; double[] ComMat = { 0.2 }; double[] FeaMat = { 0.3 }; double[] TexMat = { 0.4 }; cl_DataStore SaveData = new cl_DataStore(); bRetValue = target.Init("Test_WriteData"); bRetValue = target.addpart(strPartName, uFace); bRetValue = target.addFaceRegion(strPartName, Vert, Nor, TC, Ind, FeaC); bRetValue = target.addComponent(strPartName, ComName, trans, ComMat, FeaMat, TexMat); Assert.IsTrue(bRetValue); bRetValue = target.WriteData(strPartName); Assert.IsTrue(bRetValue); }
//bool HSFaddComponent(cl_DataStore SaveData, String str_FileName) public void Test_HSFaddComponent() { bool bRetValue; Outwriter target = new Outwriter(); String str_FileName = String.Empty; bRetValue = target.HSFaddComponent(null, str_FileName); Assert.IsFalse(bRetValue); cl_DataStore TargetData = new cl_DataStore(); bRetValue = target.Init("Test_HSFaddComponent"); Assert.IsTrue(bRetValue); bRetValue = target.HSFaddComponent(TargetData, str_FileName); Assert.IsTrue(bRetValue); TargetData.PartName = "PartName"; double[] dData = { 0.2 }; TargetData.transformation = dData; TargetData.componentMaterial = dData; TargetData.featureMaterials = dData; TargetData.textureMatrix = dData; str_FileName = "Test_HSFaddComponent"; bRetValue = target.HSFaddComponent(TargetData, str_FileName); Assert.IsTrue(bRetValue); }
//bool HSFaddFaceRegion(cl_DataStore SaveData, String str_FileName) public void Test_HSFaddFaceRegion() { bool bRetValue; Outwriter target = new Outwriter(); String str_FileName = String.Empty; bRetValue = target.HSFaddFaceRegion(null, str_FileName); Assert.IsFalse(bRetValue); cl_DataStore TargetData = new cl_DataStore(); bRetValue = target.Init("Test_HSFaddFaceRegion"); Assert.IsTrue(bRetValue); bRetValue = target.HSFaddFaceRegion(TargetData, str_FileName); Assert.IsTrue(bRetValue); TargetData.PartName = "PartName"; float[] fData = { 0.1f }; TargetData.Vertices = fData; TargetData.Normals = fData; TargetData.TextureCoords = fData; uint[] uData = { 1 }; TargetData.Indices = uData; TargetData.Features = uData; str_FileName = "Test_HSFaddFaceRegion"; bRetValue = target.HSFaddFaceRegion(TargetData, str_FileName); Assert.IsTrue(bRetValue); }
//bool Init(string str_FileName) public void Test_Init() { bool bRetValue; Outwriter target = new Outwriter(); bRetValue = target.Init("Test_Init"); Assert.IsTrue(bRetValue); }
//bool CloseNode(String ComName) public void Test_CloseNode() { bool bRetValue; Outwriter target = new Outwriter(); bRetValue = target.CloseNode("Text"); Assert.IsFalse(bRetValue); bRetValue = target.Init("Test_CloseNode"); Assert.IsTrue(bRetValue); bRetValue = target.CloseNode("Text"); Assert.IsTrue(bRetValue); }
//bool addpart(String PartName, UInt32 U_FaceCount) public void Test_addpart() { bool bRetValue; string strPartName = String.Empty; uint uFace = 0; Outwriter target = new Outwriter(); cl_DataStore TargetData = new cl_DataStore(); bRetValue = target.Init("Test_addpart"); Assert.IsTrue(bRetValue); strPartName = "Test_addpart"; bRetValue = target.addpart(strPartName, uFace); Assert.IsTrue(bRetValue); }
//bool partExists(String StrPart) public void Test_partExists() { bool bRetValue; Outwriter target = new Outwriter(); bRetValue = target.partExists("Ret_1"); Assert.IsFalse(bRetValue); bRetValue = target.Init("Test_partExists"); Assert.IsTrue(bRetValue); bRetValue = target.partExists("Ret_1"); Assert.IsFalse(bRetValue); bRetValue = target.partExists("Test_placeholderExists"); Assert.IsTrue(bRetValue); }
//bool writeExe(string FileName) public void Test_writeExe() { bool bRetValue; Outwriter target = new Outwriter(); String str_FileName = String.Empty; bRetValue = target.writeExe(str_FileName); Assert.IsFalse(bRetValue); bRetValue = target.Init("Test_writeExe"); Assert.IsTrue(bRetValue); str_FileName = "Test_writeExe"; bRetValue = target.writeExe(str_FileName); Assert.IsTrue(bRetValue); }
//bool HSFaddpart(cl_DataStore SaveData) public void Test_HSFaddpart() { bool bRetValue; Outwriter target = new Outwriter(); bRetValue = target.HSFaddpart(null); Assert.IsFalse(bRetValue); cl_DataStore TargetData = new cl_DataStore(); bRetValue = target.Init("Test_HSFaddpart"); Assert.IsTrue(bRetValue); bRetValue = target.HSFaddpart(TargetData); Assert.IsTrue(bRetValue); TargetData.PartName = "PartName"; bRetValue = target.HSFaddpart(TargetData); Assert.IsTrue(bRetValue); TargetData.uPartFaceCount = 1; bRetValue = target.HSFaddpart(TargetData); Assert.IsTrue(bRetValue); }
//bool addFaceRegion(String PartName, float[] Vert, float[] Nor, float[] TC, uint[] Ind, uint[] FeaC) public void Test_addFaceRegion() { bool bRetValue; string strPartName = "Test_addFaceRegion"; float[] Vert = { 0.1f }; float[] Nor = { 0.1f }; float[] TC = { 0.2f }; uint[] Ind = { 3 }; uint[] FeaC = { 4 }; Outwriter target = new Outwriter(); cl_DataStore TargetData = new cl_DataStore(); bRetValue = target.Init("Test_addFaceRegion"); uint uFace = 0; bRetValue = target.addpart(strPartName, uFace); Assert.IsTrue(bRetValue); bRetValue = target.addFaceRegion(strPartName, Vert, Nor, TC, Ind, FeaC); Assert.IsTrue(bRetValue); }
//bool addComponent(String PartName, String ComName, double[] trans, double[] ComMat, double[] FeaMat, double[] TexMat) public void Test_addComponent() { bool bRetValue; string strPartName = "Test_addComponent";; String ComName = "Test_addComponent 1"; double[] trans = { 0.1 }; double[] ComMat = { 0.2 }; double[] FeaMat = { 0.3 }; double[] TexMat = { 0.4 }; Outwriter target = new Outwriter(); cl_DataStore TargetData = new cl_DataStore(); bRetValue = target.Init("Test_addComponent"); uint uFace = 0; bRetValue = target.addpart(strPartName, uFace); Assert.IsTrue(bRetValue); bRetValue = target.addComponent(strPartName, ComName, trans, ComMat, FeaMat, TexMat); Assert.IsTrue(bRetValue); }
//bool addNode(String PartName, String ComName) public void Test_addNode() { bool bRetValue; Outwriter target = new Outwriter(); string strPartName = String.Empty; string strComponetName = String.Empty; bRetValue = target.addNode(strPartName, strComponetName); Assert.IsFalse(bRetValue); strPartName = "strPartName"; bRetValue = target.addNode(strPartName, strComponetName); Assert.IsFalse(bRetValue); strPartName = String.Empty; strComponetName = "strComponetName"; bRetValue = target.addNode(strPartName, strComponetName); Assert.IsFalse(bRetValue); strPartName = "strPartName"; bRetValue = target.Init("Test_addNode"); Assert.IsTrue(bRetValue); bRetValue = target.partExists("Ret_1"); Assert.IsFalse(bRetValue); }
public void execute(ExternalCommandData commandData, ref string message, ElementSet elements) { try { //Retrieves the current active project. Autodesk.Revit.UI.UIApplication app = commandData.Application; UIDocument doc = app.ActiveUIDocument; string ExecutingAssemblyPath = Assembly.GetExecutingAssembly().Location; string DllAssemblyPath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(ExeWriter)).CodeBase); //revitApp = app Autodesk.Revit.DB.View view = commandData.View; String ApplicationName = doc.Document.Title; String WievName = view.Document.Title; //Initialize RenderAppearancesForm //RenderAppearancesFrom.Asssets = app.Application.get_Assets(Autodesk.Revit.Utility.AssetType.Appearance); // Generate a object for Revit materials management. //MaterialsMgr materialsManager = new MaterialsMgr(doc, app); // Feed a MaterialsMgr to a dialog. FilteredElementCollector collector = new FilteredElementCollector(doc.Document); ICollection <Element> AllElements = collector.WhereElementIsNotElementType().ToElements(); ArrayList objs = new ArrayList(); Autodesk.Revit.DB.GeometryElement GeomElem; //Autodesk.Revit.DB.Options Opts= new Options(); Autodesk.Revit.DB.Options geomOp = app.Application.Create.NewGeometryOptions(); writeData.Init(ref message); Autodesk.Revit.DB.GeometryInstance instance = null; foreach (Element element in AllElements) { Autodesk.Revit.DB.Phase phaseCreated = element.PhaseCreated; if (null != phaseCreated) { //Get Geometry element GeomElem = element.get_Geometry(geomOp); if (null == GeomElem) { TopographySurface TyPo = element as TopographySurface; if (null == TyPo) { HostObject HostOb = element as HostObject; if (null == HostOb) { } else { GeomElem = HostOb.get_Geometry(geomOp); } } else { GeomElem = TyPo.get_Geometry(geomOp); } } //Geometry must be if (null != GeomElem) { //GeomElem = element.get_Geometry(Opts); foreach (GeometryObject geomObj in GeomElem.Objects) { uint uCurves = 0; Solid geomSolid = geomObj as Solid; Curve geomCurve = geomObj as Curve; Mesh geomMesh = geomObj as Mesh; Edge geomEdge = geomObj as Edge; instance = geomObj as Autodesk.Revit.DB.GeometryInstance; if (null != instance) { foreach (GeometryObject InstanObj in instance.SymbolGeometry.Objects) { geomSolid = InstanObj as Solid; geomMesh = InstanObj as Mesh; geomEdge = InstanObj as Edge; geomCurve = InstanObj as Curve; if (geomCurve != null) { // transfrom the curve to make it in the instance's coordinate space geomCurve = geomCurve.get_Transformed(instance.Transform); } if (geomSolid != null) { // transfrom the curve to make it in the instance's coordinate space DataProcess(geomSolid, instance); } } } if (null != geomCurve) { uCurves++; } if (null != geomSolid) { DataProcess(geomSolid, instance); } } SendData(element, instance); objs.Add(element); d_VerticesList.Clear(); d_NormalsList.Clear(); d_TextureCoordsList.Clear(); d_FeatureMaterialList.Clear(); u_IndicesList.Clear(); u_FeaturesIndList.Clear(); } } } System.Diagnostics.Trace.WriteLine(AllElements.Count.ToString()); CF_WriterForm form = new CF_WriterForm(objs); //form.ShowDialog(); //using (MaterialsForm dlg = new MaterialsForm(materialsManager,commandData)) //{ form.ExportFileName = ApplicationName; if (form.ShowDialog() != System.Windows.Forms.DialogResult.Cancel) { ExportFileName = form.ExportFileName; EndProsess(ref message); // Revit need to do nothing. //return Autodesk.Revit.UI.Result.Cancelled; } else { // Done some action, ask revit to execute it. //return Autodesk.Revit.UI.Result.Succeeded; } //} } catch (Exception e) { // Exception rised, report it by revit error reporting mechanism. message = e.ToString(); File.AppendAllText(@"C:\CadFaster\Revit\CF_WriterDLLs_log.txt", message); //return Autodesk.Revit.UI.Result.Failed; } }
private void MakeConvertToHSF(UIApplication app, UIDocument doc) { FilteredElementCollector collector = new FilteredElementCollector(doc.Document); ICollection <Element> AllElements = collector.WhereElementIsNotElementType().ToElements(); //fr_status.StartProgressBar(AllElements.Count); ArrayList objs = new ArrayList(); Autodesk.Revit.DB.GeometryElement GeomElem = null; Autodesk.Revit.DB.GeometryElement CatElem = null; //Autodesk.Revit.DB.Options Opts= new Options(); Autodesk.Revit.DB.Options geomOp = app.Application.Create.NewGeometryOptions(); writeData.Init(ExportFileName); Autodesk.Revit.DB.GeometryInstance instance = null; Material materialElement = null; fr_Progress.StartProgressBar(AllElements.Count); int iElementCount = 0; foreach (Element element in AllElements) { fr_Progress.AddValueProgressBar(iElementCount++); instance = null; //fr_status.UpDateProgressBar(iCurrentElementCount++); Autodesk.Revit.DB.Phase phaseCreated = element.PhaseCreated; if (null != phaseCreated) { if (element is TopographySurface) { //materialElement = element.Category.Material; foreach (Parameter par in element.Parameters) { if ("Material" == par.Definition.Name) { ElementId Id = par.AsElementId(); if (-1 != Id.IntegerValue) { Element eleMat = doc.Document.get_Element(Id); materialElement = eleMat as Material; } else { materialElement = element.Category.Material; } //materialElement = materials.get_Item(Id); } } } GeomElem = element.get_Geometry(geomOp); if (null == GeomElem) { TopographySurface TyPo = element as TopographySurface; if (null == TyPo) { HostObject HostOb = element as HostObject; if (null == HostOb) { }//if (null == HostOb) else { GeomElem = HostOb.get_Geometry(geomOp); } }//if (null == TyPo) else { GeomElem = TyPo.get_Geometry(geomOp); } }//if (null == GeomElem) if (null != GeomElem) { HandleGeometryElement(GeomElem, ref instance, doc, materialElement); }//if (null != GeomElem) if (null != GeomElem || null != CatElem) { SendData(element, instance); //objs.Add(element); Lid_Vertices.Clear(); Lid_Normals.Clear(); Lid_TextureCoords.Clear(); Lid_FeatureMaterial.Clear(); Liu_Indices.Clear(); Liu_FeatureIndex.Clear(); } //if (null != GeomElem) } //if (null != phaseCreated) } // foreach (Element element in AllElements) //System.Diagnostics.Trace.WriteLine(AllElements.Count.ToString()); //CF_WriterForm form = new CF_WriterForm(objs); //form.ShowDialog(); //using (MaterialsForm dlg = new MaterialsForm(materialsManager,commandData)) //{ }