Пример #1
0
        public static void SetOLF(this UIApplication app, string text)
        //ExternalCommandData commandData,
        //ref string message,
        //ElementSet elements)
        {
            var Factors = Enum.GetNames(typeof(OccLoadFactor)).ToList();

            if (Factors.Any(x => x == "A" + text))
            {
                int              numb            = Factors.IndexOf("A" + text);
                Document         doc             = app.ActiveUIDocument.Document;
                Selection        sel             = app.ActiveUIDocument.Selection;
                ISelectionFilter selectionFilter = new RoomSelectionFilter();

                Reference     ChangedObject = sel.PickObject(ObjectType.Element, selectionFilter);
                Room          r             = doc.GetElement(ChangedObject.ElementId) as Room;
                NeuralNetwork net           = OLFNetwork.GetNetwork(CMDLibrary.WriteNull);

                Sample s = new Sample(CC_Library.Datatypes.Datatype.OccupantLoadFactor);
                s.TextInput           = r.Name;
                s.DesiredOutput       = new double[net.Layers.Last().Biases.Count()];
                s.DesiredOutput[numb] = 1;
                OLFNetwork.Propogate(CMDLibrary.WriteNull);

                using (Transaction t = new Transaction(doc, "Set Param"))
                {
                    t.Start();
                    Element e = r as Element;
                    e.Set(Params.OccupantLoadFactor, text);
                    t.Commit();
                }
            }
        }
Пример #2
0
 public static void UpdateLoadFactor(this Element ele)
 {
     try
     {
         Room r          = ele as Room;
         var  name       = r.Name;
         var  pred       = OLFNetwork.Predict(name, CMDLibrary.WriteNull);
         var  numb       = pred.ToList().IndexOf(pred.Max());
         var  loadfactor = Enum.GetNames(typeof(OccLoadFactor)).ToList()[numb].Remove(0, 1);
         r.SetIntParam(
             Params.OccupantLoadFactor,
             loadfactor);
     }
     catch (Exception e) { e.OutputError(); }
 }