1 # Copyright (C) 2010-2011 Richard Lincoln
3 # Permission is hereby granted, free of charge, to any person obtaining a copy
4 # of this software and associated documentation files (the "Software"), to
5 # deal in the Software without restriction, including without limitation the
6 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 # sell copies of the Software, and to permit persons to whom the Software is
8 # furnished to do so, subject to the following conditions:
10 # The above copyright notice and this permission notice shall be included in
11 # all copies or substantial portions of the Software.
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 from CIM15
.IEC61968
.AssetModels
.ConductorInfo
import ConductorInfo
23 class CableInfo(ConductorInfo
):
24 """Cable data.Cable data.
27 def __init__(self
, outerJacketKind
="pvc", sheathAsNeutral
=False, isStrandFill
=False, nominalTemperature
=0.0, constructionKind
="sector", diameterOverJacket
=0.0, diameterOverInsulation
=0.0, diameterOverScreen
=0.0, shieldMaterial
="lead", diameterOverCore
=0.0, DuctBankInfo
=None, *args
, **kw_args
):
28 """Initialises a new 'CableInfo' instance.
30 @param outerJacketKind: Kind of outer jacket of this cable. Values are: "pvc", "linearLowDensityPolyethylene", "none", "insulating", "other", "polyethylene", "semiconducting"
31 @param sheathAsNeutral: True if sheath / shield is used as a neutral (i.e., bonded).
32 @param isStrandFill: True if wire strands are extruded in a way to fill the voids in the cable.
33 @param nominalTemperature: Maximum nominal design operating temperature.
34 @param constructionKind: Kind of construction of this cable. Values are: "sector", "other", "solid", "compacted", "stranded", "segmental", "compressed"
35 @param diameterOverJacket: Diameter over the outermost jacketing layer.
36 @param diameterOverInsulation: Diameter over the insulating layer, excluding outer screen.
37 @param diameterOverScreen: Diameter over the outer screen; should be the shield's inside diameter..
38 @param shieldMaterial: Material of the shield. Values are: "lead", "aluminum", "other", "copper", "steel"
39 @param diameterOverCore: Diameter over the core, including any semi-con screen; should be the insulating layer's inside diameter.
42 #: Kind of outer jacket of this cable. Values are: "pvc", "linearLowDensityPolyethylene", "none", "insulating", "other", "polyethylene", "semiconducting"
43 self
.outerJacketKind
= outerJacketKind
45 #: True if sheath / shield is used as a neutral (i.e., bonded).
46 self
.sheathAsNeutral
= sheathAsNeutral
48 #: True if wire strands are extruded in a way to fill the voids in the cable.
49 self
.isStrandFill
= isStrandFill
51 #: Maximum nominal design operating temperature.
52 self
.nominalTemperature
= nominalTemperature
54 #: Kind of construction of this cable. Values are: "sector", "other", "solid", "compacted", "stranded", "segmental", "compressed"
55 self
.constructionKind
= constructionKind
57 #: Diameter over the outermost jacketing layer.
58 self
.diameterOverJacket
= diameterOverJacket
60 #: Diameter over the insulating layer, excluding outer screen.
61 self
.diameterOverInsulation
= diameterOverInsulation
63 #: Diameter over the outer screen; should be the shield's inside diameter..
64 self
.diameterOverScreen
= diameterOverScreen
66 #: Material of the shield. Values are: "lead", "aluminum", "other", "copper", "steel"
67 self
.shieldMaterial
= shieldMaterial
69 #: Diameter over the core, including any semi-con screen; should be the insulating layer's inside diameter.
70 self
.diameterOverCore
= diameterOverCore
72 self
._DuctBankInfo
= None
73 self
.DuctBankInfo
= DuctBankInfo
75 super(CableInfo
, self
).__init
__(*args
, **kw_args
)
77 _attrs
= ["outerJacketKind", "sheathAsNeutral", "isStrandFill", "nominalTemperature", "constructionKind", "diameterOverJacket", "diameterOverInsulation", "diameterOverScreen", "shieldMaterial", "diameterOverCore"]
78 _attr_types
= {"outerJacketKind": str, "sheathAsNeutral": bool, "isStrandFill": bool, "nominalTemperature": float, "constructionKind": str, "diameterOverJacket": float, "diameterOverInsulation": float, "diameterOverScreen": float, "shieldMaterial": str, "diameterOverCore": float}
79 _defaults
= {"outerJacketKind": "pvc", "sheathAsNeutral": False, "isStrandFill": False, "nominalTemperature": 0.0, "constructionKind": "sector", "diameterOverJacket": 0.0, "diameterOverInsulation": 0.0, "diameterOverScreen": 0.0, "shieldMaterial": "lead", "diameterOverCore": 0.0}
80 _enums
= {"outerJacketKind": "CableOuterJacketKind", "constructionKind": "CableConstructionKind", "shieldMaterial": "CableShieldMaterialKind"}
81 _refs
= ["DuctBankInfo"]
84 def getDuctBankInfo(self
):
86 return self
._DuctBankInfo
88 def setDuctBankInfo(self
, value
):
89 if self
._DuctBankInfo
is not None:
90 filtered
= [x
for x
in self
.DuctBankInfo
.CableInfos
if x
!= self
]
91 self
._DuctBankInfo
._CableInfos
= filtered
93 self
._DuctBankInfo
= value
94 if self
._DuctBankInfo
is not None:
95 if self
not in self
._DuctBankInfo
._CableInfos
:
96 self
._DuctBankInfo
._CableInfos
.append(self
)
98 DuctBankInfo
= property(getDuctBankInfo
, setDuctBankInfo
)