XML 58 R45.htm IDEA: XBRL DOCUMENT
v3.22.0.1

BUSINESS OVERVIEW AND SIGNIFICANT ACCOUNTING POLICIES - Additional Information (Detail) | 12 Months Ended
--- | ---
Dec. 31, 2021 Segment tranche commercial_product
Significant Accounting Policies [Line Items] |
Number of commercial products in portfolio | commercial_product | 7
Number of tranches in offering period | tranche | 4
Span of offering period | 24 months
Number of reportable segment | 1
Number of operating segments | 1
Aldurazyme | Minimum |
Significant Accounting Policies [Line Items] |
Payment received as percentage of net product sales | 39.50%
Aldurazyme | Maximum |
Significant Accounting Policies [Line Items] |
Payment received as percentage of net product sales | 50.00%

X
- Definition Number Of Commercial Products In Portfolio + References No definition available. + Details
Name: | bmrn_NumberOfCommercialProductsInPortfolio
Namespace Prefix: | bmrn_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number Of Tranches In Offering Period + References No definition available. + Details
Name: | bmrn_NumberOfTranchesInOfferingPeriod
Namespace Prefix: | bmrn_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | instant

X
- Definition Payment received from sale of a product as percentage of worldwide net product sales. + References No definition available. + Details
Name: | bmrn_PaymentReceivedAsPercentageOfNetProductSales
Namespace Prefix: | bmrn_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | instant

X
- Definition Significant accounting policies. + References No definition available. + Details
Name: | bmrn_SignificantAccountingPoliciesLineItems
Namespace Prefix: | bmrn_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Span of offering period. + References No definition available. + Details
Name: | bmrn_SpanOfOfferingPeriod
Namespace Prefix: | bmrn_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 18 -URI http://asc.fasb.org/extlink&oid=123359005&loc=d3e8672-108599 + Details
Name: | us-gaap_NumberOfOperatingSegments
Namespace Prefix: | us-gaap_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 18 -URI http://asc.fasb.org/extlink&oid=123359005&loc=d3e8672-108599 + Details
Name: | us-gaap_NumberOfReportableSegments
Namespace Prefix: | us-gaap_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | srt_ProductOrServiceAxis=bmrn_ProductOneMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |