Ejemplo n.º 1
0
        public static void AddProperties(this Element elem, PropertyValues pvs, VaultAliases vaultAlias
                                         , int cateId, int typeId, int matId, int levelId, int famId, int modelId, string modelUrl, int?unitId, int?floorId, int?discId)
        {
            elem.AddBasicProperties(pvs, vaultAlias, modelId);

            if (elem.IfcId != null)
            {
                var ifcPV = new PropertyValue {
                    PropertyDef = vaultAlias.PdDict[PD.IfcId]
                };
                ifcPV.Value.SetValue(MFDataType.MFDatatypeText, elem.IfcId);
                pvs.Add(-1, ifcPV);
                if (!String.IsNullOrEmpty(modelUrl))
                {
                    var urlPV = new PropertyValue {
                        PropertyDef = vaultAlias.PdDict[PD.ModelUrl]
                    };
                    urlPV.Value.SetValue(MFDataType.MFDatatypeMultiLineText, modelUrl + "&ifcguid=" + elem.IfcId);
                    pvs.Add(-1, urlPV);
                }
            }

            var catePV = new PropertyValue {
                PropertyDef = vaultAlias.PdDict[PD.PartCategory]
            };

            catePV.Value.SetValue(MFDataType.MFDatatypeLookup, cateId);
            pvs.Add(-1, catePV);
            var typePV = new PropertyValue {
                PropertyDef = vaultAlias.PdDict[PD.PartType]
            };

            typePV.Value.SetValue(MFDataType.MFDatatypeLookup, typeId);
            pvs.Add(-1, typePV);
            if (matId > 0)
            {
                var matPV = new PropertyValue {
                    PropertyDef = vaultAlias.PdDict[PD.Material]
                };
                matPV.Value.SetValue(MFDataType.MFDatatypeLookup, matId);
                pvs.Add(-1, matPV);
            }
            if (levelId > 0)
            {
                var levelPV = new PropertyValue {
                    PropertyDef = vaultAlias.PdDict[PD.Level]
                };
                levelPV.Value.SetValue(MFDataType.MFDatatypeLookup, levelId);
                pvs.Add(-1, levelPV);
            }
            if (elem.Parameters.Count > 0)
            {
                var pPV = BaseElementExtensions.CreateParameterProp(elem.Parameters, vaultAlias);
                pvs.Add(-1, pPV);
            }
            if (elem.Family != null)
            {
                var pPV = new PropertyValue {
                    PropertyDef = vaultAlias.PdDict[PD.OwnedFamily]
                };
                pPV.Value.SetValue(MFDataType.MFDatatypeLookup, famId);
                pvs.Add(-1, pPV);
            }

            if (unitId != null)
            {
                var pPV = new PropertyValue {
                    PropertyDef = vaultAlias.PdDict[PD.ModelUnitAt]
                };
                pPV.Value.SetValue(MFDataType.MFDatatypeLookup, unitId.Value);
                pvs.Add(-1, pPV);
            }
            if (floorId != null)
            {
                var pPV = new PropertyValue {
                    PropertyDef = vaultAlias.PdDict[PD.FloorAt]
                };
                pPV.Value.SetValue(MFDataType.MFDatatypeLookup, floorId.Value);
                pvs.Add(-1, pPV);
            }
            if (discId != null)
            {
                var pPV = new PropertyValue {
                    PropertyDef = vaultAlias.PdDict[PD.DiscAt]
                };
                pPV.Value.SetValue(MFDataType.MFDatatypeLookup, discId.Value);
                pvs.Add(-1, pPV);
            }
        }