SkyCivドキュメント

SkyCivソフトウェアのガイド - チュートリアル, ハウツーガイドと技術記事

SkyCiv構造3D

  1. ホーム
  2. SkyCiv構造3D
  3. 荷重の適用
  4. 負荷の組み合わせスキーマ

負荷の組み合わせスキーマ

荷重組み合わせジェネレーターの最新のアップデートでは, we have simplified the inner workings of the module and added the following functionality:

  • Load combination generation is defined by a single .json file (Schema) for each standard.
  • Load groups and combinations can be created without having to assign loads first in the S3D modelling space.
  • Patterns, which are based on old theExpand Wind Loads” チェックボックス, now work with any load cases.

Nomenclature

In the last version of the load combination generator, the load case name that was used for many things:

  • Act as a unique ID.
  • Differentiate between load super case そして 荷重ケース, and always require one value in each (leading to bizarre ones like デッド: デッド).
  • Remain human readable, all the while remaining small enough for dropdown menus by contracting words (住む: Q-dist-roof-floor).

In the most recent update, we have divided load case names into symbols, which will be small to be used to code and when space is limited (when naming the load combinations for example: 1.25D1 + 1.5の + 1.5Ld + 0.5Sl + 0.5T), そして labels, which will aim to be very descriptive. 両方 symbols そして labels will have to be unique within a given standard. We will also allow 荷重ケース ロードと同じ名前が付けられます super case, 通常はデフォルトの荷重ケースの場合 (最も一般的に使用される). The two examples used above would be split like this:

{「D」: "死んだ"}
{「LDR」: "ライブ - 濃縮, 屋根, 床"}

シンボル 少なくとも 1 つの大文字で構成する必要があります, スーパーケースを定義するもの. の super case 新しい概念です, 通常一緒に作用する同様の荷重ケースをグループ化するために使用されます. の super case ラベルは荷重ケースのラベルの先頭に与えられます (ダッシュの前に). 上の例では (ユーロコード) 荷重ケース Ldr は L スーパーケースの一部になります (レーベルのLiveという名前), alongside other load cases like Ldd and Ldo. 舞台裏, の super case is mainly used to enforce the filtering rules, that is to determine which schema rows need to be kept and which need to be removed.

The first part of the label (ダッシュの前に) is the name of the super case. The second part is a description, using commas to separate categories from sub-categories. The second part is optional, but only one load case can take the default super case spot.

Standard Schemas rows

Each standard has a schema which completely defines all of the possible load combinations for this standard. の Schema.json file is quite straightforward, but it can become quite long, especially in standards (like Eurocode) that require a multitude of permutations. To take a simple example, take the following example requirement.

1.2*D + 1.5*L + (0.5*S or 0.5*W or 0.5*T)

To convert this into our schema, we need to break it down into each possible permutation:

1.2*D + 1.5*L
1.2*D + 1.5*L + 0.5*S
1.2*D + 1.5*L + 0.5*W
1.2*D + 1.5*L + 0.5*T
1.2*D + 1.5*L + 0.5*S + 0.5*W
1.2*D + 1.5*L + 0.5*W + 0.5*T
1.2*D + 1.5*L + 0.5*T + 0.5*S
1.2*D + 1.5*L + 0.5*S + 0.5*W + 0.5*T

Once every load combination is listed out in this manner, you can build the schema by following these steps:

  1. Use each load case key and coefficient to create a schema row object.
  2. Name each row with a unique identifier (since this is going to be an object). The convention is to use dashes to separate different elements of the name.
  3. One level up, group the rows into criteria (力, 保守性, accidental, 等)

The end result should look something like this:

"行": {
  "力":{
    "A-1-u": {"D": 1.40},
    "A-2a-u":{"D": 1.25, "L": 1.50, "Ls": 1.50},
    "A-2b-u":{"D": 1.25, "L": 1.50, "Ls": 1.50, "S": 1.00},
    "A-2c-u":{"D": 1.25, "S": 1.50, "W": 0.40},
    "A-3a-u":{"D": 1.25, "S": 1.50}
  }
}

Load Combination generation algorithm

The algorithm goes through several steps to generate the final load combination object:

  • schema as defined above is needed. It will be passed to the main load combination generation function.
  • An object is created to group the number of 荷重ケース 沿って パターン. 例えば, let’s look into a request for the load cases below:
2 Dead load case, with a merge pattern
4 Wind load cases, with an individual pattern
1 Snow load cases, with an individual pattern
2 Dead load cases, with a merge pattern

Grouping the パターン 沿って 荷重ケース will give the following object, which will be passed to the main load combination generation function.

input_by_case = 
  {
    "D": {"マージ": [2, 2], "個人": []},
    "W": {"マージ": [], "個人": [4]},
    "S": {"マージ": [], "個人": [1]}
  }
  • The last two arguments are filtering objects, which allow for filtering by 基準 or by schema key.
  • Once it has all of the required arguments, the main load combination generation function is called. This function goes through multiple nested loops to generate every required combination, which are explained in the following bullet points, and illustrated in the subsequent figure.
    • At the highest level, it loops through the schema rows. Each row is checked to see if it should be kept or skipped at this step, using the filtering objects and specific logic that is described in the section below.
    • Nested into the first loop is a second one, which loops through each requested 荷重ケース in the schema row. If the requested 荷重ケース also exists the schema row (requests are summarized in the input_by_case object), then we proceed to the next level.
    • Nested into the second loop is a third one, which loops through each possible パターン to see if there are load groups to generate within them, and runs the function to name and generate them when they do.
    • Once all load cases in the schema row have been generated and named, they are recombined (alongside their coefficients) into one or multiple load combinations.

  • This process is repeated for each row of the schema, pushing all of the generated load combinations into the final load combination object.

It is worth nothing that all of the logic related to patterns is happening while inside a single schema row. Knowing this is important to understanding the behavior of patterns. The merge pattern, 例えば, does not allow merging anything other than the load case it is assigned to. This means that you cannot:

  • Merge different load cases together, like trying to merge D1 and L1 load groups.
  • Merge identical load cases on different rows of the input table. 例えば, in the example given in point #2 上, we are asked to generate 2 dead loads using the merge pattern on two separate rows. The end result combinations would then look like to something like this:
1.2*D1 + 1.2*D2 + 1.5*L
1.2*D3 + 1.2*D4 + 1.5*L
1.2*D1 + 1.2*D2 + 1.5*L + 0.5*S
1.2*D3 + 1.2*D4 + 1.5*L + 0.5*S
1.2*D1 + 1.2*D2 + 1.5*L + 0.5*W
1.2*D3 + 1.2*D4 + 1.5*L + 0.5*T

Auto filtering unnecessary load combinations

While the above algorithm is functional without any filtering, it can lead to redundant load combinations, which leads to extra computing time and redundant results. Take the following load combinations:

1.2*D + 1.5*L
1.2*D + 1.5*L + 0.5*S
1.2*D + 1.5*L + 0.5*W
1.2*D + 1.5*L + 0.5*T

If we have a single dead load case, these four load combinations will result in identical load combinations:

1.2*D
1.2*D
1.2*D
1.2*D

To avoid this situation, four rules are used which each contain some slight exceptions. 最初, let’s have a look at the rules. The default state is for the combination to be kept and the rules are used to determine which to exclude.

Filtering by criteria

This case is pretty self-explanatory. 非線形解析にはP-Deltaが含まれます 基準 is not requested, all schema rows associated with that 基準 are discarded.

Filtering by characters in the schema key

Schema keys are usually comma separated pointers to the original reference. 例えば, in the NBCC example below, the key has three components:

  • あ: The first term is usually the main reference, reference the table in which this part of the loads are taken.
  • 2b: The second term is usually a unique identifier for the load combination inside the table.
  • あなた: The third term is usually reserved to indicate when a large number of load combinations are permuted with a slight modification. 例えば, it can indicate if the dead loads in the load combination are favorable ( f ) or unfavorable ( あなた ).
{
  "力":{
    "A-2b-u":{"D": 1.25, "L": 1.50, "Ls": 1.50, "S": 1.00},
  }
}

Filtering in the schema key can be done for any of these terms. 例えば, if we want to filter by the third term, we can add the following filter, which will create a filtering dropdown for this term:

"name_filters": {
  "力": {
    "デッドロード": {
      "位置": 2,
      "tooltip": "",
      "items": {
        "Favorable": "f",
        "Unfavorable": "あなた"
      },
      "defaults": ["Favorable", "Unfavorable"]
    }
  }
}

All of the possible dropdown names and associated terms must be listed under “items”. Only the schema rows with matching symbols will be kept. If it is required to keep a schema row independently of what is entered in the filter, the term can be left blank. Any schema key that does not contain all of the matching dropdown terms will be discarded.

Redundant combinations

If a schema row is not filtered out by the first two steps, it moves on to step number three. このステップでは, the redundancy issue from the above example is addressed. これをする, we need to look at two objects simultaneously, schema row and the sorted input_by_case object (see description above), which describes which load cases have been requested. If the schema row contains any super case which the input_by_case object does not, the load combination is removed. 取った, 例えば, the following schema row:

"A-2a-u":{"D": 1.25, "L": 1.50, "S": 1.50}

and the following input_by_case object:

input_by_case = 
{
  "D": {"マージ": [], "個人": [1]},
  "L": {"マージ": [], "個人": [4]}
}

この例では, the schema row contains a super case S which has not been requested. Keeping this row would lead to a load combination that would be identical to the load combination associated with the schema row below, so it is removed.

"A-1a-u":{"D": 1.25, "L": 1.50}

Exceptions

While this behavior is usually desirable, there are cases where NOT deleting a row when the load case is absent leads to a much simpler schema. 例えば, if we have horizontal earth loads that should be added to every combination of schema, but are not always present, we could copy and paste all of the load combinations and modify the schema key for the new rows with a suffix like “h” for horizontal earth loads. あるいは, we can simply add the horizontal earth load to all of the cases and add a keep exception to the load case in the meta data. That way, if the load case is not requested, it will not show up, but the row will still be kept. The result looks something like this in the schema’s meta property:

"H": {
  "label": "ラテラルアース - Unfavorable",
  "rank": 1,
  "exceptions": ["keep"],
  "old_labels": []
},

Superfluous combinations

If a schema row is not filtered out by the first three steps, it moves on to step number four. このステップでは, the issue of matching specific load cases between the schema and what is requested. If a schema row and a request have matching super cases, but the specific load case requested is not in the schema, the row will not be kept. 取った, 例えば, the following schema row:

"A-2a-u":{"D": 1.25, "Sl": 1.50}

and the following input_by_case:

input_by_case = 
{
  "D": {"マージ": [], "個人": [1]},
  "Sh": {"マージ": [], "個人": [1]}
}

この例では, both the schema row and the request have matching super cases. しかしながら, the request requires a combination with Sh, which the schema row does not provide. したがって, the schema row is not kept.

Exceptions

もう一度, this behavior is usually desirable, but can lead to problems. One such problem is when standards have load cases that share a super case, but do not act simultaneously. 例えば, ASCEで, the wind loads W and tornado loads Wt do not act simultaneously, though they share the same super case W. When we run into this problem, we can add an exception to switch to another super case before the code runs in the meta data. 舞台裏, the symbol following the “->” characters will be attributed to the load case, which will simulate the load cases acting in that super case. The result looks something like this in the schema’s meta property:

"Wt" : {
  "label": "風 - 竜巻",
  "rank": 8,
  "exceptions": ["スーパーケース->バツ"],
  "old_labels": []
},

上記の場合, の super case “W” に交換されます “バツ” コードが実行される前に. This feature can also be used to send group load cases that have unique super case symbols together.

この記事は役に立ちましたか?
はい 番号

どのように我々は助けることができます?

トップへ戻る