-

   rss_rss_hh_new

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 51

:


Revit

, 05 2017 . 05:26 +
image
Revit , . . Revit. Autodesk Revit .NET API, . Revit.


Revit :
;
;
;
;
.
Revit . , , , . , .
Autocad, Excel: , , , , , , Autocad.
, Revit, BIM . :
;
;
;
;
;
;
;
;
.
.
:
1) BIM- ;
2) ;
3) .
.



, :
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Application app = uiapp.Application;
Document doc = doc.Document;

BIM-. (, , ), . ID BuiltInParameters. Revit.
//  ,    ""
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 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(
                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();
 }     

, !
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/330128/

:  

: [1] []
 

:
: 

: ( )

:

  URL