UIApplication uiapp = commandData.Application; UIDocument uidoc = uiapp.ActiveUIDocument; Application app = uiapp.Application; Document doc = doc.Document;
// , "" ParameterValueProvider provider = new ParameterValueProvider(new ElementId((int)BuiltInParameter.RBS_ELEC_CIRCUIT_PANEL_PARAM)); FilterStringRule rule = new FilterStringRule(provider, new FilterStringEquals(), "", true); ElementParameterFilter filter = new ElementParameterFilter(rule); ICollection<Element> docCircuits = (new FilteredElementCollector(doc)) .OfCategory(BuiltInCategory.OST_ElectricalCircuit) .WherePasses(filter) .ToArray(); foreach (Element docCircuit in docCircuits) { // num = docCircuit.get_Parameter(BuiltInParameter.RBS_ELEC_CIRCUIT_NUMBER)? .Element.Name; // powerFactor = docCircuit.get_Parameter(BuiltInParameter.RBS_ELEC_POWER_FACTOR)? .AsValueString(); // cableType = docCircuit.get_Parameter(BuiltInParameter.RBS_ELEC_CIRCUIT_WIRE_TYPE_PARAM)? .AsValueString(); // Element wireType = new FilteredElementCollector(doc) .OfClass(typeof(WireType)) .FirstOrDefault<Element>( e => e.Name.Equals(cableType)); string coreMaterial = wireType.get_Parameter(BuiltInParameter.RBS_WIRE_MATERIAL_PARAM) .AsValueString(); }
using (Transaction tx = new Transaction(doc)) { tx.Start(" "); double xCoord = 0; // foreach (Circuit circuit in panel.circuits) { // . FamilySymbol lineSymbol = FilteredElementCollector(doc) .OfClass(typeof(FamilySymbol)) .Where(q => q.Name == "SLD_") .First() as FamilySymbol; // XYZ coords = new XYZ(xCoord, 0, 0).ToFeets(); // SLD_ FamilyInstance line = doc.Create.NewFamilyInstance(coords, lineSymbol, uidoc.ActiveView); // ParameterSet parametersLineOut = line.Parameters; // foreach (Parameter param in parametersLineOut) { switch (param.Definition.Name) { case " ": param.Set(circuit.number); break; case " ": param.Set(circuit.cableType); break; case " ": param.Set(circuit.powerFactor); break; } } xCoord = xCoord + 25; } tx.Commit(); }
Source: https://habr.com/ru/post/330128/
All Articles