public void RenderModel()
    {
        string      filename = Directory.GetCurrentDirectory() + "/Assets/ModelAndRules/PCL_Building1.ifc";//EmptyKitchen.ifc";
        DatabaseIfc db       = new DatabaseIfc(filename);

        GameObject ModelGO = new GameObject(filename);
        List <List <UnityObj> > currentModels = new List <List <UnityObj> >();
        //ModelChecks = new List<ModelCheck>();
        List <double> currentModelCosts = new List <double>();

        for (int split = 0; split < SPLIT_NUM; split++)
        {
            List <UnityObj> currentModel = new List <UnityObj>();
            foreach (Obj o in GetObjFromDB(db))
            {
                UnityObj newObj = new UnityObj(o, DefaultMaterialStatic);
                if (o.IfcType > IfcType.IfcAllNonVirtualTypes)
                {
                    SetMeshRenderMaterial(newObj.IfcGameObject, DefaultMaterialSpace);
                }
                newObj.IfcGameObject.transform.parent = ModelGO.transform;

                currentModel.Add(newObj);
            }

            currentModels.Add(currentModel);
            currentModelCosts.Add(0.0);
        }
    }
Esempio n. 2
0
    public IEnumerator readFile()
    {
        string filename = Directory.GetCurrentDirectory() + "/Assets/ModelAndRules/PCL_Building1.ifc";//EmptyKitchen.ifc";

        string filename1 = "http://162.246.156.210:8080/PCL_Building1.ifc";

        WWW fileText = new WWW(filename1);

        yield return(fileText);

        string      t  = fileText.text;
        DatabaseIfc db = null;

        if (t == "")
        {
            db = new DatabaseIfc(filename);
        }
        else
        {
            UnityEngine.Debug.Log(t);

            TextReader textReader = new StringReader(t);
            db = new DatabaseIfc(textReader);
        }
        GameObject ModelGO = new GameObject(filename);
        List <List <UnityObj> > currentModels     = new List <List <UnityObj> >();
        List <double>           currentModelCosts = new List <double>();

        for (int split = 0; split < SPLIT_NUM; split++)
        {
            List <UnityObj> currentModel = new List <UnityObj>();
            List <Obj>      objectsInDB  = GetObjFromDB(db);
            foreach (Obj o in objectsInDB)
            {
                UnityObj newObj = new UnityObj(o, DefaultMaterialStatic);
                if (o.IfcType > IfcType.IfcAllNonVirtualTypes)
                {
                    if (o.Name.Contains("Single-Flush"))
                    {
                        SetMeshRenderMaterial(newObj.IfcGameObject, DoorMaterial);
                    }
                    else
                    {
                        SetMeshRenderMaterial(newObj.IfcGameObject, DefaultMaterialSpace);
                    }
                }
                if (o.Name.Contains("Single-Flush"))
                {
                    Vector3 scaleChange = new Vector3(0.0f, 0.5f, 0.0f);
                    newObj.IfcGameObject.transform.localScale += scaleChange;

                    NavMeshModifier nmm = newObj.IfcGameObject.AddComponent <NavMeshModifier>() as NavMeshModifier;
                    nmm.overrideArea = true;
                    nmm.area         = 0;
                }

                if (o.Name.Contains("Basic"))
                {
                    NavMeshModifier nmm = newObj.IfcGameObject.AddComponent <NavMeshModifier>() as NavMeshModifier;
                    nmm.overrideArea = true;
                    nmm.area         = 1;
                }
                newObj.IfcGameObject.transform.parent = ModelGO.transform;

                currentModel.Add(newObj);
            }

            currentModels.Add(currentModel);
            currentModelCosts.Add(0.0);
        }
    }