Example #1
0
        //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);
        }
Example #2
0
        //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);
        }
Example #3
0
        //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);
        }
Example #4
0
        //bool Init(string str_FileName)
        public void Test_Init()
        {
            bool bRetValue;

            Outwriter target = new Outwriter();

            bRetValue = target.Init("Test_Init");
            Assert.IsTrue(bRetValue);
        }
Example #5
0
        //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);
        }
Example #6
0
        //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);
        }
Example #7
0
        //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);
        }
Example #8
0
        //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);
        }
Example #9
0
        //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);
        }
Example #10
0
        //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);
        }
Example #11
0
        //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);
        }
Example #12
0
        //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);
        }
Example #13
0
        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;
            }
        }
Example #14
0
        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))
            //{
        }