SkyCiv-Dokumentation

Ihr Leitfaden zur SkyCiv-Software - Tutorials, Anleitungen und technische Artikel

SkyCiv Structural 3D

  1. Zuhause
  2. SkyCiv Structural 3D
  3. Lasten anwenden
  4. Kombinationsschemata laden

Kombinationsschemata laden

Im neuesten Update des Lastkombinationsgenerators, Wir haben das Innenleben des Moduls vereinfacht und die folgende Funktionalität hinzugefügt:

  • Die Generierung von Lastkombinationen wird durch eine einzelne .json-Datei definiert (Schema) für jeden Standard.
  • Lastgruppen und -kombinationen können erstellt werden, ohne dass Lasten zuerst im S3D-Modellierungsraum zugewiesen werden müssen.
  • Muster, die auf alten basieren “Erweitern Sie Windlasten” Kontrollkästchen, Arbeiten Sie nun mit beliebigen Lastfällen.

Nomenklatur

In der letzten Version des Lastkombinationsgenerators, der Lastfallname, der für viele Dinge verwendet wurde:

  • Fungiert als eindeutige ID.
  • Unterscheiden Sie zwischen Belastung Super Fall und Lastfall, und erfordern immer jeweils einen Wert (was zu bizarren wie führt Eigengewicht: tot).
  • Bleiben Sie für den Menschen lesbar, Dabei bleibt es klein genug für Dropdown-Menüs durch Zusammenziehen von Wörtern (Verkehrslast: Q-dist-Dachboden).

Im neuesten Update, Wir haben die Lastfallnamen unterteilt in Symbole, die kompakt sind und bei begrenzten Platzverhältnissen eingesetzt werden können (B. bei der Benennung der Lastkombinationen: 1.25D1 + 1.5Der + 1.5Ld + 0.5Sl + 0.5T.), und Etiketten, was beschreibend sein wird (wird zum Beispiel in Dropdowns verwendet). Beide Symbole und Etiketten muss innerhalb eines bestimmten Standards eindeutig sein. Wir werden es auch zulassen Ladehüllen denselben Namen wie die Last tragen Super Fall, normalerweise für den Standardlastfall (am häufigsten verwendet). Die beiden oben verwendeten Beispiele würden so aufgeteilt:

{"D": "Tot"}
{„Ldr“: "Live - Konzentriert, Dächer, Boden"}

Mit der Symbol muss mindestens aus einem Großbuchstaben bestehen, was den Superfall definiert. Mit der Super Fall ist ein neues Konzept, Wird verwendet, um ähnliche Lastfälle zu gruppieren, die normalerweise zusammen wirken. Mit der Super Fall Die Beschriftung steht am Anfang der Lastfallbeschriftung (vor dem Bindestrich). Im Beispiel oben (Eurocode) der Lastfall Ldr wäre Teil des L-Superfalls (im Etikett „Live“ genannt), neben anderen Lastfällen wie Ldd und Ldo. Hinter den Kulissen, bleibt die Super Fall wird hauptsächlich zur Durchsetzung der Filterregeln verwendet, Das heißt, es wird bestimmt, welche Schemazeilen beibehalten und welche entfernt werden müssen.

Der erste Teil des Etiketts (vor dem Bindestrich) ist der Name des Super Fall. Der zweite Teil ist eine Beschreibung, Verwenden Sie Kommas, um Kategorien von Unterkategorien zu trennen. Der zweite Teil ist optional, aber nur ein Lastfall kann die Vorgabe übernehmen Super Fall Stelle.

Standardschemata-Zeilen

Jeder Standard hat eine Schema die alle möglichen Lastkombinationen für diese Norm vollständig definiert. Mit der Schema.json Datei ist ganz einfach, aber es kann ziemlich lang werden, insbesondere in Standards (wie Eurocode) die eine Vielzahl von Permutationen erfordern. Um ein einfaches Beispiel zu nehmen, Nehmen Sie die folgende Beispielanforderung.

1.2*D. + 1.5*L. + (0.5*S oder 0,5*W oder 0,5*T)

Um dies in unser umzuwandeln Schema, Wir müssen es in jede mögliche Permutation zerlegen:

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.

Auf diese Weise wird einmal jede Lastkombination aufgelistet, Sie können das Schema erstellen, indem Sie die folgenden Schritte ausführen:

  1. Verwenden Sie jeden Lastfallschlüssel und -koeffizienten, um ein Schemazeilenobjekt zu erstellen.
  2. Benennen Sie jede Zeile mit einer eindeutigen Kennung (da dies ein Objekt sein wird). Die Konvention besteht darin, Bindestriche zu verwenden, um verschiedene Elemente des Namens zu trennen.
  3. Eine Ebene höher, Gruppieren Sie die Zeilen nach Kriterien (Stärke, Wartungsfreundlichkeit, zufällig, etc.)

Das Endergebnis sollte in etwa so aussehen:

"Reihen": {
  "Stärke":{
    "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}
  }
}

Algorithmus zur Erzeugung von Lastkombinationen

Der Algorithmus durchläuft mehrere Schritte, um das endgültige Lastkombinationsobjekt zu generieren:

  • Mit der Schema wie oben definiert ist erforderlich. Es wird an die Hauptfunktion zur Lastkombinationsgenerierung übergeben.
  • Es wird ein Objekt erstellt, um die Anzahl zu gruppieren Ladehüllen durch Muster. Ein Träger, Schauen wir uns eine Anfrage für die unten aufgeführten Lastfälle an:
2 Eigenlastfall, mit einem Merge-Muster
4 Windlastfälle, mit individuellem Muster
1 Schneelastfälle, mit individuellem Muster
2 Totlastfälle, mit einem Merge-Muster

Gruppierung der Muster durch Lastfall wird das folgende Objekt geben, die an die Hauptlastkombinationsgenerierungsfunktion übergeben wird.

input_by_case = 
  {
    "D.": {"verschmelzen": [2, 2], "Person": []},
    "W.": {"verschmelzen": [], "Person": [4]},
    "S.": {"verschmelzen": [], "Person": [1]}
  }
  • Die letzten beiden Argumente filtern Objekte, die das Filtern ermöglichen Kriterien oder nach Schemaschlüssel.
  • Sobald alle erforderlichen Argumente vorhanden sind, wird die Hauptlastkombinationsgenerierungsfunktion aufgerufen. Diese Funktion durchläuft mehrere verschachtelte Schleifen, um jede erforderliche Kombination zu generieren, die in den folgenden Aufzählungspunkten erläutert werden, und in der folgenden Abbildung dargestellt.
    • Auf höchstem Niveau, Es durchläuft die Schemazeilen. In diesem Schritt wird jede Zeile daraufhin überprüft, ob sie beibehalten oder übersprungen werden soll, unter Verwendung der Filterobjekte und der spezifischen Logik, die im folgenden Abschnitt beschrieben werden.
    • In der ersten Schleife ist eine zweite verschachtelt, die jede angeforderte Schleife durchläuft Lastfall in der Schemazeile. Wenn gewünscht Lastfall existiert auch die Schemazeile (Anfragen werden im input_by_case-Objekt zusammengefasst), Dann gehen wir zum nächsten Level über.
    • In der zweiten Schleife ist eine dritte eingebettet, die alle möglichen Schleifen durchläuft Muster um zu sehen, ob darin Lastgruppen generiert werden können, und führt die Funktion aus, um sie zu benennen und zu generieren, wenn sie dies tun.
    • Sobald alle Lastfälle in der Schemazeile generiert und benannt wurden, sie werden neu kombiniert (neben ihren Koeffizienten) in eine oder mehrere Lastkombinationen aufgeteilt werden.

  • Dieser Vorgang wird für jede Zeile des Schemas wiederholt, Schieben aller generierten Lastkombinationen in das endgültige Lastkombinationsobjekt.

Es nützt nichts, dass die gesamte mit Mustern verbundene Logik innerhalb einer einzigen Schemazeile abläuft. Dies zu wissen ist wichtig, um das Verhalten von Mustern zu verstehen. Das Zusammenführungsmuster, beispielsweise dem, erlaubt keine Zusammenführung von etwas anderem als dem Lastfall, dem es zugeordnet ist. Das bedeutet, dass Sie es nicht können:

  • Verschiedene Lastfälle zusammenführen, wie der Versuch, die Lastgruppen D1 und L1 zusammenzuführen.
  • Führen Sie identische Lastfälle in verschiedenen Zeilen der Eingabetabelle zusammen. Ein Träger, im Beispiel unter Punkt #2 über, Wir werden gebeten, etwas zu generieren 2 Totlasten mithilfe des Zusammenführungsmusters in zwei separaten Reihen. Die Endergebniskombinationen würden dann etwa so aussehen:
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.

Automatische Filterung unnötiger Lastkombinationen

Während der obige Algorithmus ohne jegliche Filterung funktioniert, es kann zu redundanten Lastkombinationen kommen, was zu zusätzlicher Rechenzeit und redundanten Ergebnissen führt. Nehmen Sie die folgenden Lastkombinationen:

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.

Wenn wir einen einzelnen Totlastfall haben, Diese vier Lastkombinationen führen zu identischen Lastkombinationen:

1.2*D
1,2*D
1,2*D
1,2*D

Um diese Situation zu vermeiden, Es werden vier Regeln verwendet, die jeweils einige geringfügige Ausnahmen enthalten. Zuerst, Werfen wir einen Blick auf die Regeln. Der Standardstatus besteht darin, dass die Kombination beibehalten wird und anhand der Regeln bestimmt wird, welche ausgeschlossen werden sollen.

Filtern nach Kriterien

Dieser Fall ist ziemlich selbsterklärend. Wenn die Kriterien wird nicht verlangt, alle damit verbundenen Schemazeilen Kriterien werden verworfen.

Filtern nach Zeichen im Schemaschlüssel

Schemaschlüssel sind normalerweise durch Kommas getrennte Zeiger auf die ursprüngliche Referenz. Ein Träger, im NBCC-Beispiel unten, Der Schlüssel besteht aus drei Komponenten:

  • Ein: Der erste Begriff ist normalerweise die Hauptreferenz, Beachten Sie die Tabelle, in der dieser Teil der Lasten aufgeführt ist.
  • 2b: Der zweite Begriff ist normalerweise eine eindeutige Kennung für die Lastkombination innerhalb der Tabelle.
  • u: Der dritte Term ist normalerweise der Angabe vorbehalten, wenn eine große Anzahl von Lastkombinationen mit einer geringfügigen Änderung permutiert wird. Ein Träger, Es kann anzeigen, ob die Eigenlasten in der Lastkombination günstig sind ( f ) oder ungünstig ( u ).
{
  "Stärke":{
    "A-2b-u":{"D.": 1.25, "L.": 1.50, "Ls": 1.50, "S.": 1.00},
  }
}

Für jeden dieser Begriffe kann eine Filterung im Schemaschlüssel durchgeführt werden. Ein Träger, wenn wir nach dem dritten Term filtern wollen, Wir können den folgenden Filter hinzufügen, Dadurch wird ein Filter-Dropdown-Menü für diesen Begriff erstellt:

"name_filters": {
  "Stärke": {
    "Eigengewicht": {
      "Position": 2,
      "Tooltip": "",
      "Artikel": {
        "Günstig": "f",
        "Ungünstig": "u"
      },
      "Standardwerte": ["Günstig", "Ungünstig"]
    }
  }
}

Alle möglichen Dropdown-Namen und zugehörigen Begriffe müssen unter „Artikel“ aufgeführt sein.. Es bleiben nur die Schemazeilen mit übereinstimmenden Symbolen erhalten. Wenn es erforderlich ist, eine Schemazeile unabhängig von den im Filter eingegebenen Daten beizubehalten, Der Begriff kann leer gelassen werden. Jeder Schemaschlüssel, der nicht alle übereinstimmenden Dropdown-Begriffe enthält, wird verworfen.

Redundante Kombinationen

Wenn eine Schemazeile durch die ersten beiden Schritte nicht herausgefiltert wird, Es geht weiter mit Schritt Nummer drei. In diesem Schritt, Das Redundanzproblem aus dem obigen Beispiel wird behoben. Um dies zu tun, Wir müssen zwei Objekte gleichzeitig betrachten, Schemazeile und das sortierte input_by_case-Objekt (siehe Beschreibung oben), Hier wird beschrieben, welche Lastfälle angefordert wurden. Wenn die Schemazeile einen Superfall enthält, den das input_by_case-Objekt nicht enthält, Die Lastkombination wird entfernt. Nehmen, beispielsweise dem, die folgende Schemazeile:

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

und das folgende input_by_case-Objekt:

input_by_case = 
{
  "D.": {"verschmelzen": [], "Person": [1]},
  "L.": {"verschmelzen": [], "Person": [4]}
}

In diesem Beispiel, Die Schemazeile enthält a Super Fall S, das nicht angefordert wurde. Das Beibehalten dieser Zeile würde zu einer Lastkombination führen, die mit der Lastkombination identisch wäre, die der Schemazeile unten zugeordnet ist, also wird es entfernt.

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

Ausnahmen

Während dieses Verhalten normalerweise wünschenswert ist, Es gibt Fälle, in denen das NICHT-Löschen einer Zeile bei fehlendem Lastfall zu einem viel einfacheren Schema führt. Ein Träger, Wenn wir horizontale Erdlasten haben, sollten diese zu jeder Schemakombination hinzugefügt werden, sind aber nicht immer vorhanden, Wir könnten alle Lastkombinationen kopieren und einfügen und den Schemaschlüssel für die neuen Zeilen mit einem Suffix wie „h“ für horizontale Erdlasten ändern. Alternative, Wir können einfach die horizontale Erdlast zu allen Fällen hinzufügen und in den Metadaten eine Keep-Ausnahme zum Lastfall hinzufügen. Auf diese Weise, wenn der Lastfall nicht angefordert wird, es wird nicht angezeigt, aber die Zeile bleibt weiterhin erhalten. Das Ergebnis sieht in der Meta-Eigenschaft des Schemas in etwa so aus:

"H.": {
  "Etikett": "Seitliche Erde - Ungünstig",
  "Rang": 1,
  "Ausnahmen": ["halten"],
  "alte_Etiketten": []
},

Überflüssige Kombinationen

Wenn eine Schemazeile durch die ersten drei Schritte nicht herausgefiltert wird, Es geht weiter zu Schritt Nummer vier. In diesem Schritt, das Problem, bestimmte Lastfälle zwischen dem Schema und den Anforderungen abzugleichen. Wenn eine Schemazeile und eine Anfrage übereinstimmende Superfälle haben, aber der konkret angeforderte Lastfall ist nicht im Schema enthalten, Die Zeile wird nicht beibehalten. Nehmen, beispielsweise dem, die folgende Schemazeile:

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

und das folgende input_by_case:

input_by_case = 
{
  "D.": {"verschmelzen": [], "Person": [1]},
  "Sh": {"verschmelzen": [], "Person": [1]}
}

In diesem Beispiel, Sowohl die Schemazeile als auch die Anfrage haben übereinstimmende Superfälle. Jedoch, Die Anfrage erfordert eine Kombination mit Sh, was die Schemazeile nicht bereitstellt. So, Die Schemazeile wird nicht beibehalten.

Ausnahmen

Noch einmal, Dieses Verhalten ist normalerweise wünschenswert, kann aber zu Problemen führen. Ein solches Problem besteht darin, dass Standards Lastfälle haben, die einen Superfall gemeinsam haben, aber nicht gleichzeitig handeln. Ein Träger, in ASCE, Die Windlasten W und die Tornadolasten Wt wirken nicht gleichzeitig, obwohl sie den gleichen Superfall W haben. Wenn wir auf dieses Problem stoßen, Wir können eine Ausnahme hinzufügen, um zu einer anderen zu wechseln Super Fall bevor der Code in den Metadaten ausgeführt wird. Hinter den Kulissen, das Symbol nach dem “->” Dem Lastfall werden Zeichen zugeordnet, Dadurch werden die darin wirkenden Lastfälle simuliert Super Fall. Das Ergebnis sieht in der Meta-Eigenschaft des Schemas in etwa so aus:

"Wt" : {
  "Etikett": "Wind - Tornado",
  "Rang": 8,
  "Ausnahmen": ["Supercase->X."],
  "alte_Etiketten": []
},

Im obigen Fall, bleibt die Super Fall “W.” wird getauscht “X.” bevor der Code ausgeführt wird. Diese Funktion kann auch zum Versenden von Gruppenlastfällen verwendet werden, die eindeutig sind Super Fall Symbole zusammen.

War dieser Artikel für Sie hilfreich??
Ja Nein

Wie können wir helfen?

Zur Spitze gehen